使用CMD和RUN命令混合构建新容器无效

问题描述 投票:-1回答:1

我是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,甚至不会显示“ hello new 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命令混合在一起。感谢您的帮助或评论。

docker containers
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.