在Docker中链接容器

Gol*_*den 6 docker

Docker允许您按名称链接容器.

我有两个问题:

  • 假定A(客户端)链接到B(服务),并且B动态公开端口(即实际主机端口由Docker确定,而不是由用户提供).如果B发生故障并重新启动会发生什么?
    • Docker是否更新了环境变量A
    • Docker是否再次分配了相同的端口B
    • 是破碎的A链接B
    • ...?
  • 除此之外,很明显,如果两个容器都在同一台主机上运行,​​这样可以正常工作.链接容器是否也适用于机器边界?

cre*_*ack 2

我会说:尝试一下;)。

目前,docker 对进程没有任何控制,一旦启动就execve(3)没有 fork。无法更新环境,这就是为什么链接需要在容器运行之前完成,并且之后无法编辑。

Docker 将尝试将相同的端口重新分配给 B,但不保证其他容器可能正在使用它。

你所说的“破碎”是什么意思?如果您禁用了未链接容器之间的网络,则在您停止/启动容器时它应该仍然可以工作。

不,您还无法跨网络链接容器。