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

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

  • manager0
  • worker0
  • worker1
  • worker2

我以global模式启动服务,所以每个节点都运行一次服务。 让我们说这个命令是这样的:

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

mynetwork是覆盖networking。

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

我尝试使用环境variables( --env hostname=$(hostname)--env hostname=$(hostname) ,但实际上${hostname}只在pipe理器上执行,主机名对于所有节点都设置为manager0

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

您可以使用最新的命名模板来创build具有主机名称的服务。

以下是在Docker版本17.10实现的function请求

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