我第一次运行特定的泊坞窗图像:
docker run [OPTIONS] image [CMD]
我提供的一些选项包括--link
(与其他容器的链接)和-p
(公开端口)
我注意到如果我杀了那个容器而只是做docker start <container-id>
,Docker就会尊重我在run
命令中指定的所有选项,包括链接和端口。
是否明确记录了此行为,是否可以始终依靠start
命令重新使用我在run
命令中提供的所有选项重新生成容器?
另外,我注意到杀死/启动链接到另一个容器的容器会自动更新上游容器的/etc/hosts
文件:
A--(link)-->B
(A在/etc/hosts
中有一个条目用于B)
如果我kill
B,B通常会获得一个新的IP地址。我注意到当我start
B时,A /etc/hosts
文件中B的条目会自动更新......这非常好。
我看到here --link
无法处理容器重启... 最近是否更新了?如果没有,为什么我会看到这种行为?
(我使用Docker版本1.7.1,构建786b29d)
答案 0 :(得分:2)
是的,事情就像你描述的那样有效:)
你可以依赖docker start
的行为,因为它并不真正“重生”你的容器;它总是在磁盘上,只是处于停止状态。它还将保留对文件的任何更改,但RAM中的更改(例如进程状态)将丢失。 (请注意,kill
不会移除容器,只是使用SIGKILL
而不是SIGTERM
停止容器,使用docker rm
来真正删除容器。
当容器因重新启动而更改IP地址时,链接现在会更新。事实并非如此。但是,这不是链接问题的内容 - 他们正在讨论是否可以使用同名的新容器替换容器,并且链接仍然可用。这是不可能的,但是新的网络功能和目前位于Docker实验频道的“服务”对象将涵盖这种情况。