Docker:在分离模式下,在交互模式下运行从脚本创建的图像



我已经用在分离模式下运行了一个容器,从而准备了一个图像

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

其中run.sh是放置在容器中的脚本。脚本完成后,容器停止,我用将其保存为新图像

docker commit <container-id> <new-image-name>

现在我想在使用类似的新映像创建的容器中运行命令

docker run -it <new-image-name>

但当我尝试此操作时,它会自动启动与以前相同的脚本,并且我不会像预期的那样以交互模式进入容器。我做错了什么

我建议您从自己的Dockerfile创建一个新映像。您可以使用FROM<source_img>使用脚本的副本,然后使用RUN在构建中运行该脚本。之后,您可以创建一个自定义ENTRYPOINT,其中包含在容器启动时运行的命令。

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

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

如果你的镜像库使用不同的linux发行版,你就必须运行它,给容器一个不同的命令来运行;sh";。

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

-入口点

提供更多关于您的用例和您使用的基本映像的详细信息会更容易。

最新更新