将服务容器的主机名设置为主机的主机名

时间:2016-11-07 14:34:14

标签: docker docker-swarm

我使用docker swarm模式运行docker swarm。假设我有4个节点,1个经理,3个工人。主机名是:

  • manager0
  • worker0
  • worker1
  • worker2

我以global模式启动服务,因此每个节点都运行一次服务。 假设命令看起来像这样:

docker service create --name myservice --mode global --network mynetwork ubuntu wait 3600

mynetwork是一个覆盖网络。

现在我正在尝试访问容器中docker主机的主机名,因此我可以将主机名传递给容器中的应用程序。

我尝试使用环境变量(--env hostname=$(hostname))传递主机名,但实际上${hostname}仅在管理器上执行,并且所有节点的主机名都设置为manager0

有没有办法访问主机名或将主机名传递给容器?

2 个答案:

答案 0 :(得分:2)

您可以使用最新的naming templates来创建包含主机名的服务。

答案 1 :(得分:1)

以下是功能请求,已在泊坞窗版本17.10

中实施

https://github.com/moby/moby/issues/30966