美文网首页
Docker构建镜像

Docker构建镜像

作者: June_4813 | 来源:发表于2018-12-05 12:19 被阅读0次

以在 ubuntu base 镜像中安装 vi 并保存为新镜像为例:

FROM ubuntu
RUN apt-get update && apt-get install -y vim

在 ubuntu base 镜像中安装 vi 并保存为新镜像

root@ubuntu:~# pwd         ①  

/root  

root@ubuntu:~# ls          ②   

Dockerfile   

root@ubuntu:~# docker build -t ubuntu-with-vi-dockerfile .        ③   

Sending build context to Docker daemon 32.26 kB           ④   

Step 1 : FROM ubuntu           ⑤   

 ---> f753707788c5   

Step 2 : RUN apt-get update && apt-get install -y vim           ⑥   

 ---> Running in 9f4d4166f7e3             ⑦   



......   



Setting up vim (2:7.4.1689-3ubuntu1.1) ...   

 ---> 35ca89798937           ⑧    

Removing intermediate container 9f4d4166f7e3          ⑨   

Successfully built 35ca89798937           ⑩   

root@ubuntu:~#   

① 当前目录为 /root。

② Dockerfile 准备就绪。

③ 运行 docker build 命令,-t 将新镜像命名为 ubuntu-with-vi-dockerfile,命令末尾的 . 指明 build context 为当前目录。Docker 默认会从 build context 中查找 Dockerfile 文件,我们也可以通过 -f 参数指定 Dockerfile 的位置。

④ 从这步开始就是镜像真正的构建过程。 首先 Docker 将 build context 中的所有文件发送给 Docker daemon。build context 为镜像构建提供所需要的文件或目录。
Dockerfile 中的 ADD、COPY 等命令可以将 build context 中的文件添加到镜像。此例中,build context 为当前目录 /root,该目录下的所有文件和子目录都会被发送给 Docker daemon。

所以,使用 build context 就得小心了,不要将多余文件放到 build context,特别不要把 /、/usr 作为 build context,否则构建过程会相当缓慢甚至失败。

⑤ Step 1:执行 FROM,将 ubuntu 作为 base 镜像。
ubuntu 镜像 ID 为 f753707788c5。

⑥ Step 2:执行 RUN,安装 vim,具体步骤为 ⑦、⑧、⑨。

⑦ 启动 ID 为 9f4d4166f7e3 的临时容器,在容器中通过 apt-get 安装 vim。

⑧ 安装成功后,将容器保存为镜像,其 ID 为 35ca89798937。
这一步底层使用的是类似 docker commit 的命令。

⑨ 删除临时容器 9f4d4166f7e3。

⑩ 镜像构建成功。
通过 docker images 查看镜像信息。


image.png

镜像 ID 为 35ca89798937,与构建时的输出一致。

在上面的构建过程中,我们要特别注意指令 RUN 的执行过程 ⑦、⑧、⑨。Docker 会在启动的临时容器中执行操作,并通过 commit 保存为新的镜像。

相关文章

  • python基于Ubuntu下开发环境的准备

    利用Docker搭建Ubuntu环境 安装Docker 基于Dockerfile构建ubuntu镜像 构建镜像 查...

  • Learning Docker Part 002 Docker

    构建镜像 Docker提供了两种构建镜像的方法: docker commit命令 Dockerfile 构建文件 ...

  • Docker部署(二):MySQL数据库

    Docker 容器构建 使用Dockerfile构建镜像 使用官方提供的Docker镜像 所谓Dockerfile...

  • Docker镜像

    镜像: 获取镜像: 构建制作镜像.docker自带 docker commitdockerfile (推荐)封装...

  • 《第一本Docker书》笔记

    初步 确认Docker信息: 镜像 查看镜像 镜像搜索 获取镜像 构建镜像 docker commit Docke...

  • Docker的一些常用命令

    1、镜像命令: docker images 列出所有镜像 docker build 构建镜像 do...

  • Docker

    [TOC] 使用 Docker 镜像 下载镜像 列出镜像 构建镜像 删除本地镜像 操作 Docker 容器 容器是...

  • (四)Docker镜像与仓库之一(3)——构建镜像

    Docker官网 Docker文档地址 构建镜像的好处: 1.构建docker镜像,可以保存对容器的修改,方便...

  • docker镜像

    Docker镜像是构建docker容器的基础,容器是docker镜像的运行的实例。构建镜像只用三条命令就可以搭建一...

  • Java读取HDFS文件

    最近在实现一个功能:用户在前端页面触发Docker镜像构建,后端监听Docker镜像的构建状态,并将Docker镜...

网友评论

      本文标题:Docker构建镜像

      本文链接:https://www.haomeiwen.com/subject/rfmicqtx.html