对于docker swarm中的副本/比例,是否有选项让主机名/容器名具有一些seq编号?
version: '3'
services:
serA:
image: someimage1
hostname: serA
serB:
image: someimage2
tty: true
hostname: serB{{.Node.index}}
deploy:
replicas: 2
例如:我希望主机名为serB1
和serB2
答案 0 :(得分:1)
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