Docker:杀死/停止/重启容器,保持参数?

时间:2015-08-06 00:12:45

标签: docker

我第一次运行特定的泊坞窗图像:

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)

1 个答案:

答案 0 :(得分:2)

是的,事情就像你描述的那样有效:)

你可以依赖docker start的行为,因为它并不真正“重生”你的容器;它总是在磁盘上,只是处于停止状态。它还将保留对文件的任何更改,但RAM中的更改(例如进程状态)将丢失。 (请注意,kill不会移除容器,只是使用SIGKILL而不是SIGTERM停止容器,使用docker rm来真正删除容器。

当容器因重新启动而更改IP地址时,链接现在会更新。事实并非如此。但是,这不是链接问题的内容 - 他们正在讨论是否可以使用同名的新容器替换容器,并且链接仍然可用。这是不可能的,但是新的网络功能和目前位于Docker实验频道的“服务”对象将涵盖这种情况。