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

7

关于我的环境背景:

我在3个Ubuntu 14.04 Vagrant虚拟机上运行Docker Swarm。Swarm主节点在1台机器上(带有Consul),另外2台机器运行Swarm工作节点并加入到主节点。我按照文档页面https://docs.docker.com/swarm/install-manual/设置了环境。从我的主节点运行任何docker -H :4000 <some_docker_command>都能正常工作。服务发现已经激活,因为我在我的两个工作节点上运行了gliderlabs/registrator容器。Swarm会在大约30秒内显示集群中的任何更改,例如节点或容器故障(在我看来有点慢,但至少它还能工作)。

问题:

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)类似,没有设置实例标签的方法。
简而言之:我有3个vagrant ubuntu盒子运行swarm(1个主节点+2个工作节点)。默认情况下,工作节点的标签名为“ubuntu-14”,我想通过在每个工作节点上添加一些内容到/etc/default/docker文件来手动更改标签名。我应该添加什么?
2个回答

17

解决方案

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

我刚刚通过编辑/etc/hostname文件并将ubuntu-14更改为master、worker1或worker2来更改我的vagrant虚拟机的主机名。然后我重新启动了我的虚拟机,并且还需要使用sudo service docker restart在每台机器上重启docker服务。我还销毁了旧容器并重新运行它们,我不确定这一步是否必要,但我为了确保做了这个步骤。


重启Docker服务是解决方案。无需重新启动计算机。 - zkilnbqi
我认为你甚至不需要这样做,只需使用 sudo hostnamectl --no-ask-password set-hostname [你想要更改的名称] - SomeoneElse

1

这个解决方案对我有效

更改主机名(重启前有效)

hostname myname

永久主机名更改

hostnamectl set-hostname myname

重启 Docker

sudo systemctl restart docker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接