将服务容器的主机名设置为主机的主机名
我运行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请求