首先 可以用ContOS虛擬機 克隆 5個虛擬機,注意(克隆主機必須裝了Docker,克隆後,克隆機都會有Docker)
配置 網絡
克隆CentOS虛擬機
最後和到如下結果
打開2377端口
firewall-cmd --zone=public --add-port=2377/tcp --permanent
然後進入CentOS 7 64位
初始化 Swarm
sudo docker swarm init --advertise-addr 192.168.0.102:2377 --listen-addr 192.168.0.102:2377
A: (初始化後Swarm後可以通過 docker swarm join-token worker 查看Swarm的Token信息 )
上圖下箭頭即是添加功能節點命令,代碼如下:
sudo docker swarm join --token SWMTKN-1-1fmeankvtj5x8483gsxuhgwvhrdt2yt6japzopemjcucv8ykit-4xj0shobna3bu2u1tk377z2ch 192.168.0.102:2377 --advertise-addr 192.168.0.105:2377 --listen-addr 192.168.0.105:2377
B: 查看添管理能節點命令
docker swarm join-token manager
上圖下箭頭即是添加管理節點命令 (注意 先關閉添加管理節點機器的防火牆,不然可能不成功),代碼如下:
sudo docker swarm join --token SWMTKN-1-1fmeankvtj5x8483gsxuhgwvhrdt2yt6japzopemjcucv8ykit-4xj0shobna3bu2u1tk377z2ch 192.168.0.102:2377 --advertise-addr 192.168.0.104:2377 --listen-addr 192.168.0.104:2377
可以通過Docker info查看相關信息
添加管理節點 (注意 先關閉104的
防火牆,不然可能不成功)
先登入另一臺虛擬機
關閉防火牆
systemctl stop firewalld
添加管理節點
sudo docker swarm join --token SWMTKN-1-1fmeankvtj5x8483gsxuhgwvhrdt2yt6japzopemjcucv8ykit-4xj0shobna3bu2u1tk377z2ch 192.168.0.102:2377 --advertise-addr 192.168.0.104:2377 --listen-addr 192.168.0.104:2377
添加功能節點
sudo docker swarm join --token SWMTKN-1-1fmeankvtj5x8483gsxuhgwvhrdt2yt6japzopemjcucv8ykit-4xj0shobna3bu2u1tk377z2ch 192.168.0.102:2377 --advertise-addr 192.168.0.105:2377 --listen-addr 192.168.0.105:2377
創建Swarm Service
這裏的five是我用.net Core創建的Image,現在我要用這個境像創建5個Swarm Servie容器
sudo docker service create --name myfiveweb -p 8080:5000 --replicas 5 five
查看Swarm Service 運行情況
docker service ls
詳情
docker service ps myfiveweb
查看Docker 節點信息
docker node ls
如果報 docker node ls錯:
Error response from daemon: rpc error: code = Unknown desc = The swarm does not have a leader. It's possible that too few managers are online. Make sure more than half of the managers are online.
解決方法:
docker swarm init --force-new-cluster
提升爲管理節點命令
sudo docker node promote fhdpncl3ay8vl5ogmbdh42ia8
將管理節點降級
docker node demote 0nbt 降級
刪了節點
先在節點機器上執行
sudo docker swarm leave --force
然後再Swarm主管理機上執行
docker node rm ablwad6b 刪除