gpt4 book ai didi

docker - 如何确保在Docker中不重复命令

转载 作者:行者123 更新时间:2023-12-02 18:16:34 24 4
gpt4 key购买 nike

我正在学习使用docker文件构建镜像。

我所做的简短描述

步骤1

为了进行测试,我已经开始使用下面的docker文件构建镜像

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镜像中安装了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。

注意:如果我输入错误的方式,请描述处理镜像和docker文件的最佳方法。

最佳答案

在这里重复该步骤是因为您没有添加另一个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

关于docker - 如何确保在Docker中不重复命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38374806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com