咱們須要:node
須要如下端口:nginx
TCP port 2377 for cluster management communicationsdocker
TCP and UDP port 7946 for communication among nodesvim
TCP and UDP port 4789 for overlay network trafficruby
在建立 Swarm 的同時,生成了管理節點 (manager)$ docker swarm init --advertise-addr <MANAGER-IP>
--advertise-addr
將管理節點的地址發佈爲:172.17.0.1.其餘工做節點若是要連接過來,須要確保它們能訪問管理節點。
查看 Swarm 的信息--advertise-addr
$ docker info
$ docker node ls
tcp
「*」 標識當前鏈接的節點spa
在 Manager node 所在的 host上面運行 CMDunix
$ docker swarm join-token worker
在 Worker node 所在的 host 上面 運行 CMDrest
$ docker swarm join \
--token SWMTKN-1-5navvuqvscrredmgo6x9ovsy5kbf81a5mzbmipydgfuelo0wg5-cjirzq0zm2eu5uvmi2u9p27je \
172.100.1.12:2377code
1. Docker監聽遠程端口實現遠程調用API
$ vim /lib/systemd/system/docker.service
添加如下內容
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
從新Load而且重啓Docker程序
$ systemctl daemon-reload
$ service docker restart
2. 解決docker info報錯docker bridge-nf-call-iptables is disabled辦法
$ vim /etc/sysctl.conf
添加以下內容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
3. 重啓機器shutdow -r now