docker container hostname序列号

时间:2017-04-27 13:32:07

标签: docker docker-compose docker-swarm

对于docker swarm中的副本/比例,是否有选项让主机名/容器名具有一些seq编号?

version: '3'

services:

  serA:
    image: someimage1
    hostname: serA
  serB:
    image: someimage2
    tty: true
    hostname: serB{{.Node.index}}
    deploy:
      replicas: 2

例如:我希望主机名为serB1serB2

1 个答案:

答案 0 :(得分:1)

AFAIK不支持此功能,因为Docker团队认为这是一个坏主意,因此不予支持:

  

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

     

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

     

即使我们保留了比例数字,我也不相信依靠它们来分隔容器之间的工作是个好主意。更好的容器生成自己的标识符并使​​用它,因此它不依赖于Compose正常工作。

     

...

     

回顾一些讨论:

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

  •   
  • 我们要删除顺序缩放ID,并仅使用容器ID的唯一性。它们在分布式系统中不可靠

  •   

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