docker学习-构建镜像

对于docker用户来讲,最好的状况是不须要本身建立镜像,几乎全部的经常使用的数据库、中间件、应用软件等都有现成的docker官方镜像或其余人和组织建立的镜像,咱们只须要稍微配置就能够直接使用。
可是在某些状况下,也须要本身构建镜像。
好比:
一、找不到现成的镜像,好比本身开发应用程序
二、须要在镜像中加入特定的功能。
docker提供了两种构建镜像的方法:docker commit命令和Dockerfile构建文件。docker

docker commit

docker commit命令式建立镜像最直观的方法,其过程包含3个步骤
一、运行容器
二、修改容器
三、将容器保存为新的镜像
好比: 在Ubuntu base镜像中安装vi并保存为新镜像
(1)运行容器
docker学习-构建镜像
-it 参数的做用式以交互的模式进入容器,并打开终端。
2b1763cc8299就是容器内部的ID
(2)安装vim
确认vim没有安装
docker学习-构建镜像
安装vim,以下所示:
docker学习-构建镜像
(3)保存为新镜像
在新窗口中查看当前运行的容器
docker学习-构建镜像
distracter_chaum是Docker为咱们的容器随机分配的名字
执行docker commit命令将容器保存为镜像
docker学习-构建镜像
新镜像命名为ubuntu-with-vim
查看新镜像的属性,以下所示:
docker学习-构建镜像
能够看到新镜像由于安装了vim软件而变大了
重新镜像启动容器,验证vim已经可使用
docker学习-构建镜像数据库

虽然咱们可使用docker commit建立新镜像,可是docker不建议用户使用这种方式构建镜像。缘由以下:
一、该方式是手工建立镜像的方式了,容易出错,效率低可重复性弱
二、没法对镜像进行审计,存在安全隐患ubuntu

Dockerfile

Dockerfile是一个文本文件,记录了镜像构建的全部步骤vim

第一个Dockerfile

新建一个文本文件Dockerfile,内容以下:
docker学习-构建镜像
如下为运行docker build命令构建镜像并详细分析细节安全

[root@docker-1 ~]# docker build -t ubuntu-with-vim-dockerfile .    (1)
Sending build context to Docker daemon  13.31kB                        (2)
Step 1/2 : FROM ubuntu                                                                  (3)
 ---> a2a15febcdf3
Step 2/2 : RUN apt-get update && apt-get install -y vim                   (4)
 ---> Running in ad7fa94cfb94                                                           (5)
Successfully built ad7fa94cfb94                                                         (6)
Successfully tagged ubuntu-with-vim-dockerfile:latest                              (7)

说明:
一、运行docker build命令,-t将新镜像命名为ubuntu-with-vim-dockerfile 命令末尾的.指明build context为当前目录。Docker默认会从build context中查找Dockerfile文件,
也能够经过-f参数指定Dockerfile文件的位置
二、镜像构造过程。首先Docker将build context中的文件发送给Docker daemon,bulid context为镜像构建提供所须要的文件或目标。Dockerfile中的ADD,COPY命令能够将build context中的文件添加到镜像,此例中,bulid context为当前目录.root,该目录下的全部文件和子目录都会被发送给Docker daemon。注意不要将多余文件放到bulid context,特别不要把/,/usr做为bulid context,不然构建过程当中会至关的缓慢甚至失败
三、Step1,执行FROM,将Ubuntu做为base镜像,镜像ID为a2a15febcdf3
四、Step2,执行RUN,安装vim
五、启动临时容器,在容器中经过apt-get安装vim
六、安装完成后,将容器保存为镜像,其ID为ad7fa94cfb94
该步骤底层使用相似docker commit的命令
七、镜像构建成功ide

经过docker images查看镜像信息学习

docker学习-构建镜像

相关文章
相关标签/搜索