我使用docker swarm模式运行docker swarm。假设我有4个节点,1个经理,3个工人。主机名是:
我以global
模式启动服务,因此每个节点都运行一次服务。
假设命令看起来像这样:
docker service create --name myservice --mode global --network mynetwork ubuntu wait 3600
mynetwork
是一个覆盖网络。
现在我正在尝试访问容器中docker主机的主机名,因此我可以将主机名传递给容器中的应用程序。
我尝试使用环境变量(--env hostname=$(hostname)
)传递主机名,但实际上${hostname}
仅在管理器上执行,并且所有节点的主机名都设置为manager0
。
有没有办法访问主机名或将主机名传递给容器?