我正在学习使用docker文件构建图像。
对我所做的简短描述
第1步
为了进行测试,我已经使用docker file
开始使用构建映像FROM centos:6.8
MAINTAINER Bilal Usean "xxxxx@xxx.xxx"
RUN yum install -y httpd; yum -y clean all
之后我运行了以下命令
docker build -t httpd/centos:6.8 .
它在httpd / centos:6.8 image
中成功安装了apache第2步
接下来,我尝试在同一个现有的新创建的图像中安装jdk
FROM centos:6.8
MAINTAINER Bilal Usean "xxxxxx@xxx@xx"
RUN yum install -y httpd; yum -y clean all
yum install java-1.6.0-openjdk-devel; yum -y clean all
之后我运行了以下命令
docker build -t httpd/centos:6.8 .
但它会再次从httpd安装开始,我预计它会跳过已安装的httpd步骤。
我认为制作docker文件不是一个好习惯。我在docker文件中有20个 RUN 命令,即从网上下载大文件,所以我想确保每个命令成功。否则它会在中间再次失败,它将收取更多的MB。
注意:如果我的方法错误,请描述处理图片和泊坞窗文件的最佳方式。
答案 0 :(得分:3)
它在此重复,因为您没有添加另一个RUN
命令,而是附加(并更改)了上一个命令(docker检测到此更改,并运行新命令)。
你应该写的是:
FROM centos:6.8
MAINTAINER Bilal Usean "xxxxxxxx@xxx.xxx"
RUN yum install -y httpd; yum -y clean all
RUN yum install java-1.6.0-openjdk-devel; yum -y clean all