如何使用空入口点提交Docker容器?

时间:2018-07-14 03:20:44

标签: docker containers

我有一个原始docker映像,我想运行一个容器并对其进行修改,然后提交一个新映像。 我检查了原始的docker镜像,并且有一个conf

"Config": {
        ...
        "Cmd": [
            "/bin/bash",
            "-ic",
            "./run.sh"
        ],

         ...,
        "Entrypoint": null,
        ...
    },

我想为新提交的映像保留相同的Cmd和Entrypoint。 但是无论是否使用--change,我都无法保留“ Entrypoint”:新图像的null。有什么办法吗? 而且,我也使用docker-py,它有同样的问题。

2 个答案:

答案 0 :(得分:3)

考虑issue 23498PR 23498,请尝试使用:

--change '[""]'
# or
--change []
  

如果数组仅由一个空字符串([""])组成,则入口点    重置为系统默认值(即Dockerfile中没有ENTRYPOINT指令时docker使用的入口点)。

但是,如果系统默认值为/bin/sh -c ...则对您不起作用。
请参阅“ Default Docker entrypoint”。

答案 1 :(得分:1)

您应该记下您在Dockerfile中所做的特定更改。可以少到

FROM the-base-image
RUN ...

docker build将保留基础图像中的ENTRYPOINTCMD

如果基本映像更新,则可以重新运行docker build并获取新的派生映像;当六个月后图像中出现问题时,您会记录其中的内容,以便重新进行构建。 (也就是说,我建议完全不要使用docker commit。)