docker 容器主机名序列号

Kit*_*son 6 docker docker-compose docker-swarm

是否有任何选项可以让主机名/容器名在 docker swarm 中的副本/规模的情况下具有一些序列号?

version: '3'

services:

  serA:
    image: someimage1
    hostname: serA
  serB:
    image: someimage2
    tty: true
    hostname: serB{{.Node.index}}
    deploy:
      replicas: 2
Run Code Online (Sandbox Code Playgroud)

例如:我想将主机名作为serB1和serB2

zep*_*lin 3

AFAIK 这不受支持,也不会被支持,因为 Docker 团队认为这是一个坏主意:

经过一番思考,我认为这不是一个好主意。

将来我们很可能会摆脱规模数字。一旦我们使用 Swarm 迁移到多主机系统,跟踪整数的递增序列将变得 (a) 成本高昂且 (b) 不可靠。

即使我们保留了秤的数字,我也不相信依靠它们来在容器之间分配工作是一个好主意。容器最好生成自己的标识符并使​​用它,这样它就不需要依赖 Compose 来正常工作。

...

回顾一下一些讨论:

  • $(hostname) 或 $(hostname -i) 可用于获取唯一的 id 或缩放容器的 IP 地址。使用它不会复制图像,它是在容器运行时评估的。

  • 我们想删除连续的比例 ID,只使用容器 ID 的唯一性。它们在分布式系统中不可靠

请参阅https://github.com/docker/compose/pull/1131和 https://github.com/docker/compose/pull/1371