我有一个原始docker映像,我想运行一个容器并对其进行修改,然后提交一个新映像。 我检查了原始的docker镜像,并且有一个conf
"Config": {
...
"Cmd": [
"/bin/bash",
"-ic",
"./run.sh"
],
...,
"Entrypoint": null,
...
},
我想为新提交的映像保留相同的Cmd和Entrypoint。 但是无论是否使用--change,我都无法保留“ Entrypoint”:新图像的null。有什么办法吗? 而且,我也使用docker-py,它有同样的问题。
答案 0 :(得分:3)
考虑issue 23498和PR 23498,请尝试使用:
--change '[""]'
# or
--change []
如果数组仅由一个空字符串(
[""]
)组成,则入口点 重置为系统默认值(即Dockerfile中没有ENTRYPOINT
指令时docker使用的入口点)。
但是,如果系统默认值为/bin/sh -c
...则对您不起作用。
请参阅“ Default Docker entrypoint”。
答案 1 :(得分:1)
您应该记下您在Dockerfile中所做的特定更改。可以少到
FROM the-base-image
RUN ...
docker build
将保留基础图像中的ENTRYPOINT
和CMD
。
如果基本映像更新,则可以重新运行docker build
并获取新的派生映像;当六个月后图像中出现问题时,您会记录其中的内容,以便重新进行构建。 (也就是说,我建议完全不要使用docker commit
。)