镜像

转:docker详细的基础用法

瘦欲@ 提交于 2020-03-01 06:19:42
Docker 是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Appli cat ion Container)。(我个人还是喜欢称虚拟机) Docker应用容器相对于 VM 有以下几个优点: 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源 因为VM的Hypervisor需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。 个人体会较深的两处优点: 快速部署,传统的部署模式是:安装(包管理工具或者源码包编译)->配置->运行;Docker的部署模式是:复制->运行。 可以保证线上与测试环境一致,计划以后上线就直接复制测试使用的docker容器 什么是docker? http://oilbeater.com/docker/2014/06/29/what-is-docker.html 为什么你应该关注docker? http://oilbeater.com/docker/2014/06/13/why-you-should-care-about-docker.html 1、docker安装

docker相关

喜夏-厌秋 提交于 2020-03-01 04:31:17
docker简介 什么是docker Docker 是应用最广泛的开源容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中 docker实质就像虚拟机一样,就好像是一个具有独立操作系统的真实机器 虚拟机是有真正的linux内核的,真实需要通过 .ios 文件安装操作系统 而我们的docker共享linux宿主机内核,只有一个linux文件系统 容器 容器是一个操作系统级别下的虚拟化技术,运行一个容器就行运行一个进程一样 容器依赖linux内核特性:Namespace(资源隔离)和Cgroups(资源限制) docker与虚拟机比较 91G docker 126MB docker安装 安装依赖包 yum install - y yum - utils device - mapper - persistent - data lvm2 添加Docker软件包源(否则doker安装的不是新版本) yum - config - manager \ - - add - repo \ https : // download . docker . com / linux / centos / docker - ce . repo 安装Docker CE yum install - y docker - ce 启动Docker服务并设置开机启动 systemctl start

2.docker镜像管理基础

。_饼干妹妹 提交于 2020-03-01 03:04:42
docker 码头工人,镜像集装箱 启动容器时,docker daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从Registry中下载该镜像并保存到本地 Registry分类 Sponsor Registry 第三方的Registry,供客户和社区使用 Mirror Registry 第三方的Registry,只让客户使用 Vendor Registry 由发布Docker镜像的供应商提供的Registry Private Registry 通过设有防火墙和额外的安全层的私有实体提供Registr 每个仓库可以包含多个的Tag,每个标签对应一个镜像,Docker Registry中的镜像通常由开发人员制作,而后推送至‘公共’或‘私有’Registry上保存,供其他人使用。 带服务器地址下载镜像 docker pull quay.io/coreos/flannel:v0.10.0-amd64 镜像制作 Dockerfile 基于容器制作镜像。 本节主要针对基于容器制作 1.启动一个容器 [root@zanghao01 ~]# docker run --name b1 -it busybox / # ls / bin dev etc home proc root sys tmp usr var / # mkdir -p /data/html / # vim /data

一文看懂docker容器技术架构及其中的各个模块

风格不统一 提交于 2020-03-01 01:24:45
概述 今天主要简单介绍下docker的技术架构及其中组成的各个模块。 技术架构 distribution 负责与docker registry交互,上传洗澡镜像以及v2 registry 有关的源数据 registry负责docker registry有关的身份认证、镜像查找、镜像验证以及管理registry mirror等交互操作。 image 负责与镜像源数据有关的存储、查找,镜像层的索引、查找以及镜像tar包有关的导入、导出操作。 reference负责存储本地所有镜像的repository和tag名,并维护与镜像id之间的映射关系。 layer模块负责与镜像层和容器层源数据有关的增删改查,并负责将镜像层的增删改查映射到实际存储镜像层文件的graphdriver模块。 graghdriver是所有与容器镜像相关操作的执行者。 1、docker client docker client 是docker架构中用户用来和docker daemon建立通信的客户端,用户使用的可执行文件为docker,通过docker命令行工具可以发起众多管理container的请求。 docker client发送容器管理请求后,由docker daemon接受并处理请求,当docker client 接收到返回的请求相应并简单处理后,docker client 一次完整的生命周期就结束了

docker详细的基础用法(转)

a 夏天 提交于 2020-03-01 00:22:49
1、docker安装 debian7安装docker 参考地址:http://www.webmaster.me/server/installing-docker-on-debian- wheezy-in-60-seconds.html echo deb http://get.docker.io/ubuntu docker main | sudo tee/etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sudo apt-get update sudo apt-get install -y lxc-docker #四行命令,Docker就安装好了。下面创建一个ubuntu虚拟系统: docker pull ubuntu #此处是从官网拉取名为ubuntu的image,也可手动在 https://index.docker.io上搜索想要的镜像。 docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。 ubuntu12.04、windows、macOS安装docker 参考docker中文文档http://www

docker入门与实践之【04-使用dockerfile定制镜像】

拟墨画扇 提交于 2020-02-29 22:34:46
利用dockerfile定制镜像 Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 以定制nginx 镜像为例,使用 Dockerfile 来定制。 在一个空白目录中,建立一个文本文件,并命名为 Dockerfile: $ mkdir mynginx $ cd mynginx $ touch Dockerfile 其内容为: FROM nginx RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html 1 FROM 指定基础镜像 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制.FROM 就是指定基础镜像,一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 2 RUN 执行命令 RUN 指令是用来执行命令行命令的。由于命令行的强大能力,RUN 指令在定制镜像时是最常用的指令之一。其格式有两种: shell 格式: RUN <命令> ,就像直接在命令行中输入的命令一样。刚才写的 Dockerfile 中的 RUN 指令就是这种格式。 RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index

Docker 从入门到实践(二)Docker 三个基本概念

坚强是说给别人听的谎言 提交于 2020-02-29 16:37:29
一、Docker 的三个进本概念? 了解 Docker 的三个基本概念,就可以大致了解 Docker 的生命周期。 镜像(Image) 容器(Container) 仓库(Repository) 二、镜像 1.Docker 镜像   我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变 2.分层存储   因为 镜像包含了操作系统完整的 root 文件系统,其体积还是很巨大的,所以引入了 Unios FS 技术,将其设计为分层存储的架构。所以镜像不是那种 ISO 打包文件,镜像是一个虚拟的概念,它是由一组文件系统构成,或者说多层文件系统联合构成。   镜像在构建时,是一层层构建,上一层是下一层的基础,每一层构建结束就不会在被修改,后一层任何修改只会作用在当前层。例如删除上一层文件,不会真的删除该文件

webpack的安装

别说谁变了你拦得住时间么 提交于 2020-02-29 14:57:24
使用 vue.js 开发大型应用需要使用 webpack 打包工具,Webpack 可以将 js、css、png 等多种静态资源进行打包。 一、使用 webpack 的优缺点? 模块化开发 程序员在开发时可以分模块创建不同的js、 css等小文件方便开发,最后使用webpack将这些小文件打包成一个文 件,减少了http的请求次数。 webpack可以实现按需打包,为了避免出现打包文件过大可以打包成多个文件。 编译typescript、ES6等高级js语法 随着前端技术的强大,开发中可以使用javascript的很多高级版本,比如:typescript、ES6等,方便开发, webpack可以将打包文件转换成浏览器可识别的js语法。 CSS预编译 webpack允许在开发中使用Sass 和 Less等原生CSS的扩展技术,通过sass-loader、less-loader将Sass 和 Less的 语法编译成浏览器可识别的css语法。 webpack的缺点 1、配置有些繁琐 2、文档不丰富 二、使用安装 node.js ? webpack 基于 node.js 运行,首先需要安装 node.js。 node.js 安装(略),需要配置环境变量。 在命令提示符下输入命令: node -v 安装NPM npm全称Node Package Manager,他是node包管理和分发的工具

dockerfile构建镜像

我只是一个虾纸丫 提交于 2020-02-29 13:49:57
在操作系统中,我们可以通过ps看到各式各样的进程,这些进程有如下特点: 1.进程可以相互看到,可以相互通信 2.他们使用同一个文件系统,可以对同一个文件做读写操作 3.这些进程使用相同的系统资源 上述这些特点会带来一些问题,具体如下: 可以相互通信,高权限进程可以攻击其他进程 使用同一个文件系统,拥有高权限的进程可以对其他进程已有的数 据进行增删改查,不同进程之间的依赖会相互冲突 使用同一个宿主机资源,会存在资源抢占问题 linux系统中通过chroot这个工具,将子目录变成根目录,达到视图级别的隔离,系统在chroot的帮助下,具有独立的文件系统 使用namespace技术实现进程在资源的视图上进行隔离 使用Cgroup来限制资源使用率 而具有这些特性的进程的集合,就可以称为容器 总的来说, 容器就是一个视图隔离,具有独立文件系统,资源可限制的进程集合。 镜像: 我们将这些容器运行时所需要的所有文件的集合称为镜像 我们一般情况下通过dockerfile来构建镜像 dockerfile特点: 一般我们通过dockerfile构建镜像,每个构建步骤都会对已有的文件系统进行操作,对文件系统内容带来变化,我们将这些变化称为 changeset changeset具有分层和复用的特点, 1.可以提高分发效率,对于大的镜像,可以将其拆分为各个小块,可以提高分发效率

Docker 实现挂载的三种方式

无人久伴 提交于 2020-02-29 11:23:31
最近学习了docker,做一些笔记来巩固知识,也供他人参考 文章目录 一 通过docker run命令 二 通过dockerfile创建挂载点 三 容器共享卷(挂载点) 四 最佳实践:数据容器 五 总结 在介绍VOLUME指令之前,我们来看下如下场景需求: 1.容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上。一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像)。能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在。 2. 当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上。 这样的话,我在主机上修改文件(如html,js等)后,需要再同步到容器中。这显然比较麻烦。 3. 多个容器运行一组相关联的服务,如果他们要共享一些数据怎么办? 对于这些问题,我们当然能想到各种解决方案。而docker本身提供了一种机制,可以将主机上的某个目录与容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是主机的这个目录下的内容,这类似linux系统下mount的机制。 这样的话,我们修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的。 挂载点可以让多个容器共享。 下面我们来介绍具体的实现机制。 一