Undertsanding docker build

时间:2016-02-10 10:23:44

标签: docker

当我运行docker build命令时,我会看到以下内容

[root@hadoop01 myjavadir]# docker build -t runhelloworld .
Sending build context to Docker daemon 4.096 kB
Sending build context to Docker daemon
Step 0 : FROM java
 ---> 3323938eb5a2
Step 1 : MAINTAINER priyanka priyanka.patil@subex.com
 ---> Running in 89fa73dbc2b8
 ---> 827afdfa3d71
Removing intermediate container 89fa73dbc2b8
Step 2 : COPY ./HelloWorld.java .
 ---> 9e547d78d08c
Removing intermediate container ff5b7c7a8122
Step 3 : RUN javac HelloWorld.java
 ---> Running in d52f3093d6a3
 ---> 86121aadfc67
Removing intermediate container d52f3093d6a3
Step 4 : CMD java HelloWorld
 ---> Running in 7b4fa1b8ed37
 ---> 6eadaac27986
Removing intermediate container 7b4fa1b8ed37
Successfully built 6eadaac27986

想要了解这些容器ID的含义,例如7b4fa1b8ed37。 当守护进程说"删除中间容器d52f3093d6a3"

时意味着什么

1 个答案:

答案 0 :(得分:2)

docker build进程会自动执行docker文档的http://domain.com部分中发生的事情。

在上面的情况中:

  • 我们要开始的图片ID为3323938eb5a2java图片的ID)
  • 从该图像中我们运行一个容器(在创建它之后,它的容器ID为89fa73dbc2b8)来设置MAINTAINER元数据,docker提交更改,结果图层ID为{{1 }}
  • 因为我们已经完成了容器827afdfa3d71,我们可以将其删除
  • 从我们从89fa73dbc2b8行创建的图层,我们创建一个新容器来运行命令MAINTAINER,它获取容器ID COPY ./HelloWorld.java .,docker提交更改并生成图层ID为ff5b7c7a8122
  • 因为我们已经完成了容器9e547d78d08c,我们可以将其删除

重复步骤3和4。