docker run
当您通过docker commit
?进行更改时,如何确保Dockerfile中指定的原始CMD仍设置为运行?
这是事件的顺序,使它更清晰:
-ti --entrypoint /bin/bash
之后在某个时刻从图像运行容器进行一些更改docker commit
以使用新标记创建新图像所以我问; 如何在已提交的映像上再次从Dockerfile重置CMD?
sxc*_*731 34
当前的Docker版本(我在1.11.1上)提供了一个--change
选项,允许在提交时对图像进行内联操作,如下所示:
docker commit --change='ENTRYPOINT ["myEntryPoint.sh"]' $(docker ps -lq)
Run Code Online (Sandbox Code Playgroud)
CMD
与其他一些人一样也受到支持.有关详细信息和示例,请参见联机帮助页
您将创建一个Dockerfile来设置CMD
or ENTRYPOINT
。只需将Dockerfile基于由返回的映像ID docker commit
。例如,鉴于此:
$ docker commit $(docker ps -lq)
69e9c08825508ec780efc86268a05ffdf4edae0999a2424dbe36cb04c2a15d6b
Run Code Online (Sandbox Code Playgroud)
我可以创建一个如下所示的Dockerfile:
FROM 69e9c08825508ec780efc86268a05ffdf4edae0999a2424dbe36cb04c2a15d6b
CMD ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)
然后使用它来构建新图像:
$ docker build .
Step 0 : FROM 69e9c08825508ec780efc86268a05ffdf4edae0999a2424dbe36cb04c2a15d6b
---> 69e9c0882550
Step 1 : CMD /bin/bash
---> Running in f886c783551d
---> 13a0f8ea5cc5
Removing intermediate container f886c783551d
Successfully built 13a0f8ea5cc5
Run Code Online (Sandbox Code Playgroud)
也就是说,最好的做法可能是不对容器进行更改,然后使用Docker commit。如果仅依靠Dockerfile首先实现必要的更改,那么最终将产生更多可审核的更改。
归档时间: |
|
查看次数: |
12630 次 |
最近记录: |