docker多容器間免密集羣搭建
從雲上拉一個7.5版本的contos鏡像
[root@myserver ~]# docker pull centos:7.5.1804
查看當前鏡像
[root@myserver ~]# docker images
打開三個xshell窗口,每個窗口各執行一條
[root@myserver ~]# docker run -i -t --name Master -h Master -p 50070:50070 centos:7.5.1804 /bin/bash
[root@myserver ~]# docker run -i -t --name Slaver1 -h Slaver1 centos:7.5.1804 /bin/bash
[root@myserver ~]# docker run -i -t --name Slaver2 -h Slaver2 centos:7.5.1804 /bin/bash
下面操作三臺都要運行
service安裝
[root@Master /]# yum install -y initscripts
ifconfig安裝
[root@Master /]# yum install -y net-tools.x86_64
vim安裝
[root@Master /]# yum install -y vim
安裝ssh客戶端
[root@Master /]# yum install -y openssh-clients
安裝ssh服務器
[root@Master /]# yum install -y openssh-server
生成祕鑰
[root@Master /]# ssh-keygen
一路回車
移動到.ssh目錄下
[root@Master /]# cd ~/.ssh
將本機祕鑰輸入到authorized_keys文件
[root@Master .ssh]# cat id_rsa.pub > authorized_keys
[root@Master .ssh]# cat authorized_keys
添加一個寄宿主機xshell窗口
生成寄宿主機祕鑰
[root@myserver ~]# ssh-keygen
一路回車
查看寄宿主機祕鑰
[root@myserver ~]# cat ~/.ssh/id_rsa.pub
將四個祕鑰全部複製到三臺容器的authorized_keys
[root@Master .ssh]# vim authorized_keys
將原來的祕鑰刪除,把上面四個複製進去。
以上操作完成後,以下指令直接一路回車下去
[root@Master .ssh]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
[root@Master .ssh]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
[root@Master .ssh]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
[root@Master .ssh]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
[root@Master .ssh]# cd /
查看三臺容器的ip
[root@Master /]# ifconfig
創建一個sh文件
[root@Master /]# vim run.sh
將一下命令全部寫入run.sh
#!/bin/bash
echo "172.18.0.2 Master" >> /etc/hosts
echo "172.18.0.3 Slaver1" >> /etc/hosts
echo "172.18.0.4 Slaver2" >> /etc/hosts
/usr/sbin/sshd
source /etc/profile
改變文件權限
[root@Master /]# chmod +x run.sh
運行run.sh文件
[root@Master /]# ./run.sh
進行測試
[root@Master /]# ssh Slaver1
退回到原來容器內
[root@Slaver1 ~]# exit
三臺容器全部退出
[root@Master /]# exit
爲主機保存三個容器的映射,方便主機訪問三個容器
[root@myserver ~]# vim /etc/hosts
將三個ip及映射添加進去,裏面原本的東西不要動
172.18.0.2 Master
172.18.0.3 Slaver1
172.18.0.4 Slaver2
隨後保存三個鏡像
[root@myserver ~]# docker commit Master master:v1.0
[root@myserver ~]# docker commit Slaver1 slaver1:v1.0
[root@myserver ~]# docker commit Slaver2 slaver2:v1.0
啓動前將剛纔的容器刪掉
[root@myserver ~]# docker stop Master
[root@myserver ~]# docker rm Master
[root@myserver ~]# docker stop Slaver1
[root@myserver ~]# docker rm Slaver1
[root@myserver ~]# docker stop Slaver2
[root@myserver ~]# docker rm Slaver2
然後分別啓動
[root@myserver ~]# docker run -it --name Master --hostname Master -p 50070:50070 master:v1.0
[root@myserver ~]# docker run -it --name Slaver1 --hostname Slaver1 slaver1:v1.0
[root@myserver ~]# docker run -it --name Slaver2 --hostname Slaver2 slaver2:v1.0
每個容器分別執行run.sh
[root@Master /]# ./run.sh
再測試
[root@Master /]# ssh Slaver1
測試成功