我已经用在分离模式下运行了一个容器,从而准备了一个图像
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";。
如果你仍然有问题,你也可以尝试使用更改图像的入口点
-入口点
提供更多关于您的用例和您使用的基本映像的详细信息会更容易。