使用混合的 CMD 和 RUN 命令构建新容器不起作用



我是docker的新手,我正在学习如何构建一个新容器。我在构建从 Ubuntu 继承的容器时遇到了一个问题。我想在 Ubuntu 容器上安装 Python3 和其他一些带有正确消息的软件包,但它不起作用。 当我使用Dockerfile构建容器时:

FROM ubuntu
CMD echo "hello new Ubuntu"
RUN apt-get upgrade &&  apt-get update && apt-get install -y python3 
CMD echo "installed python"

带有docker run -it my_new_ubuntu构建的 Ubuntu 的调用不会进入交互模式,它只打印installed python,甚至没有"你好新 Ubuntu"。

虽然,当我构建一个没有任何消息的Dockerfile容器时:

FROM ubuntu RUN apt-get upgrade &&  apt-get update && apt-get install
-y python3

并用docker run -it my_new_ubuntu调用构建的容器,它进入 Ubuntu 根目录,我可以调用 python。我不确定为什么第一个Dockerfile不起作用。似乎我不能将RUNCMD命令混合在一起。 我感谢任何帮助或评论。

RUN指定从 Dockerfile 构建映像时要运行的命令。您可以有多个RUN指令,每个指令将按指定的顺序应用于图像。

CMD指定映像已实例化到容器中并启动的默认命令。如果有多个CMD指令,则仅应用最后一个指令。

相关内容

最新更新