Docker:以交互模式运行以分离模式从脚本创建的映像

时间:2020-08-07 06:51:38

标签: docker

我已经通过使用以下命令在分离模式下运行容器来准备图像

docker run -itd <image-name> sh run.sh

run.sh是放置在容器内的脚本。脚本完成后,容器停止了,我使用

将其保存为新图像
docker commit <container-id> <new-image-name>

现在,我想在从新映像创建的容器中运行命令,例如

docker run -it <new-image-name>

,但是当我尝试此操作时,它将自动启动与以前相同的脚本,并且我没有按预期进入交互模式的容器。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我建议您根据自己的Dockerfile创建一个新映像。 您可以使用FROM 和脚本的COPY来实现,然后使用RUN在构建内部运行该脚本。之后,您可以使用命令在容器启动时运行来创建自定义ENTRYPOINT。

您还可以通过给它一个命令以交互方式运行容器。 例如,如果您的基本映像是nginx,则可以这样运行新映像:

docker run -it <new-image-name> bash

如果您的映像库使用其他linux发行版,则必须运行该映像,从而为容器提供不同的命令来运行例如“ sh”。

如果您仍然遇到问题,也可以尝试使用更改图像的入口点

-入口点

提供有关用例的更多详细信息以及所使用的基本映像将更加容易。