Docker swarm:如何手动设置节点名称?

Docker swarm: How to manually set node names?

关于我的环境的一些背景:

我有 docker swarm 运行ning 在 3 ubuntu 14.04 vagrant boxes 上。 swarm master 运行ning 在一台机器上(带 consul),另外 2 台机器 运行ning swarm worker 加入了 master。我按照文档页面 https://docs.docker.com/swarm/install-manual/ 设置了环境。它工作正常,因此来自我的主机的任何 docker -H :4000 <some_docker_command> 运行 都可以正常工作。服务发现处于活动状态,因为我 运行 在我的两个工作人员上安装了 gliderlabs/registrator 容器。我的集群的任何更改,例如节点或容器故障,都会在大约 30 秒内由 swarm 显示(我认为这有点慢,但至少它可以正常工作)。

问题:

Swarm 将我的两个节点识别为 "ubuntu-14"

vagrant@ubuntu-14:~$ docker -H :4000 ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                        NAMES
a6972155d243        cohenaj194/apache-simple   "/usr/sbin/apache2ctl"   About an hour ago   Up 13 seconds       172.28.128.6:32770->80/tcp   ubuntu-14/test2
af78a8c788ed        gliderlabs/registrator     "/bin/registrator con"   2 hours ago         Up About an hour                                 ubuntu-14/registrator2
8e39416a785a        gliderlabs/registrator     "/bin/registrator con"   2 hours ago         Up 2 hours                                       ubuntu-14/registrator1
27c2225b32fb        cohenaj194/apache-simple   "/usr/sbin/apache2ctl"   2 hours ago         Up 2 hours          172.28.128.4:32770->80/tcp   ubuntu-14/test1
vagrant@ubuntu-14:~$ docker -H :4000 network ls
NETWORK ID          NAME                DRIVER
38b24dc5615b        ubuntu-14/bridge    bridge              
c4e1ffae2fa7        ubuntu-14/bridge    bridge              
29cf499e57ab        ubuntu-14/host      host                
7b4a4a153ada        ubuntu-14/host      host                
723b6bc6f23c        ubuntu-14/none      null                
01f3647d62cd        ubuntu-14/none      null   

我想知道如何手动将我的节点名称从 "ubuntu-14" 更改为其他名称。我希望能够通过在 /etc/default/docker 文件中添加一行来设置标签,因为我最终 运行 将我的集群置于其中的私有云无法设置类似的实例标签其他云提供商,例如 AWS。

tldr: 我有 3 个 vagrant ubuntu boxes 运行ning swarm (1 master + 2 workers)。默认情况下,工作人员的标签名称为 "ubuntu-14",我想通过在每个工作人员的 /etc/default/docker 文件中添加一些内容来手动更改它。我要添加什么?

解决方案

## change the hostname
hostname myname
## restart docker
sudo service docker restart

我刚刚通过编辑 /etc/hostname 文件并将 ubuntu-14 更改为 master、worker1 或 worker2 来更改我的 vag运行t boxes 的主机名。然后我重新启动了我的机器,还必须在每台机器上用 sudo service docker restart 重新启动 docker 服务。我还销毁了我的旧容器并再次 运行 它们我不确定这一步是否有必要,但我这样做是为了好的措施。

这个解决方案对我有用

更改主机名(直到重新启动)

hostname myname

永久主机名更改

hostnamectl set-hostname myname

重启docker

sudo systemctl restart docker