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

k4l*_*l4m 5 docker docker-swarm

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

  • 经理0
  • 工人0
  • 工人1
  • 工人2

我以模式启动服务global,因此每个节点都运行该服务一次。假设该命令如下所示:

docker service create --name myservice --mode global --network mynetwork ubuntu wait 3600
Run Code Online (Sandbox Code Playgroud)

mynetwork是一个覆盖网络。

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

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

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

Kan*_*ane 3

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