在Docker中链接容器
Docker允许你通过名字链接容器 。
我有两个问题:
- 假设
A
(客户端)连接到B
(服务),并且B
的端口是dynamic暴露的(即,实际的主机端口由Docker决定,而不是由用户给出)。 如果B
停机并重新启动,会发生什么情况?- Docker是否更新
A
上的环境variables? - Docker是否将相同的端口重新分配给
B
? -
B
链接是否被破坏? - …?
- Docker是否更新
- 除此之外,很显然,如果两个容器都在同一台主机上运行,这个工作正常。 链接容器是否也跨机器边界工作?
我会说:尝试;)。
目前,docker在stream程上没有任何控制权,一旦启动,就会执行execve(3)
没有fork的情况。 不能更新env,这就是为什么链接需要在容器运行之前完成,之后不能编辑。
Docker会尝试将同一个端口重新分配给B,但没有保证,因为其他容器可以使用它。
“破”是什么意思? 如果禁用了未链接的容器之间的联网,那么如果您停止/启动一个容器,它应该仍然可以正常工作。
不,您无法通过networking链接容器。
你看过大使模式吗?
这是理想的这个概念,你可能希望App服务器链接到数据库服务器,但如果你把数据库服务器closures,那么App服务器也需要重新启动。
http://docs.docker.io/en/latest/use/ambassador_pattern_linking/
- 拒绝docker容器来写主机的文件系统
- 如何使不同的aws实例中的docker安装Hazelcast节点相互交互?
- 如何通过docker-php-ext-install为php安装扩展?
- level = fatal msg =“ipset failed:ipset v6.29:集合不能被销毁:内核组件正在使用\ n:退出状态1”
- 在Azure应用服务中使用Docker容器时装入卷
- 如何正确构build使用Dockerfile的弹簧启动泊坞窗图像?
- 在Raspberry Pi上运行Docker时,启动容器会不时失败
- 将Docker容器调度到Cluster:Swarm或CoreOS?
- 更改docker中的transparent_hugepage