如何从 Docker 镜像配置中删除 Cmd 条目?

3

在Docker镜像内部运行修改后,可以对其进行修改

docker run -it --user root <image_name> bash

在提交更改并使用commit命令后,图像的配置现在包含bash命令在Container.CmdContainerConfig.Cmd中。
我看到docker commit至少曾经有一个-run选项,可以让我修改配置,但我没有找到相关文档。
如何从配置中删除Cmd以重新激活entrypoint(以及应该采取什么措施避免这个问题)?

一种选择是使用 Dockerfile 来生成新的镜像,而不是使用 docker run、进行更改和 docker commit。这样做可以更好地控制整个过程,并且还能得到可重现的步骤集合。 - undefined
这是我通常做的事情。然而,在这种情况下,我试图避免使用慢速互联网连接将一个400 MB的tar.gz Docker镜像保存并传输到另一台服务器上。 - undefined
1个回答

4
(解决方法)您可以使用docker run --entrypoint运行新镜像,以设置新的入口点,然后将该新容器提交为新镜像。它应该保留您启动它时的入口点。
或者,您可以手动编辑图像的JSON元数据,但我不建议这样做作为生产黑客 - 最好始终通过API进行操作。

1
运行得很顺利。在新图像的配置中,Cmd变成了null - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接