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
关于我的环境的一些背景:
我有 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