代码之家  ›  专栏  ›  技术社区  ›  LetsOMG

如何提交入口点为空的Docker容器?

  •  2
  • LetsOMG  · 技术社区  · 6 年前

    我有一个源Docker映像,我想运行一个容器并修改它,然后提交一个新映像。 我检查了原始的docker图像,它有一个conf

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

    我想为新提交的映像保留相同的cmd和entrypoint。 但无论我使用——更改与否,我都不能保留“entrypoint”:新图像为空。有办法吗? 另外,我也用docker py,它也有同样的问题。

    2 回复  |  直到 6 年前
        1
  •  4
  •   VonC    6 年前

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

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

    如果数组正好由一个空字符串组成( [""] )然后进入点 重置为系统默认值(即当没有 ENTRYPOINT dockerfile中的指令)。

    但是,如果系统默认为 /bin/sh -c …那对你不起作用。
    见“ Default Docker entrypoint “。

        2
  •  1
  •   David Maze    6 年前

    你应该写下你在Dockerfile中所做的具体更改。它可以小到

    FROM the-base-image
    RUN ...
    

    docker build 将保留 ENTRYPOINT CMD 从基础图像。

    如果基本映像更新,则可以重新运行 Docker构建 然后得到一个新的派生图像;六个月后,当图像中的某个内容被破坏时,您将有一个进入其中的内容的记录,以便您可以重新构建它。(也就是说,我建议不要使用 docker commit 一点也不。)