1. 程式人生 > >(centos7)建立支援ssh服務的docker映象

(centos7)建立支援ssh服務的docker映象

如果還沒有在這個網址註冊賬號的話,先註冊一個https://hub.docker.com/;賬號註冊成功後,然後在主機上(不是容器)新開一個終端,輸入以下資訊:

docker login

輸入相應的使用者名稱、密碼,然後會提示登入成功。

有時會提示未連線上,這是可能是因為沒有開啟doker

$ sudo service docker start  //開啟Docker 服務
$ sudo chkconfig docker on   //開機啟動

1、下載centos7的映象

docker pull centos7 

2、檢視已有的映象,將看到有個名為docker.io/centos的映象

docker images

3、基於centos映象,建立一個名為centos7ssh的容器

docker run -it  --name  centos7ssh  centos  /bin/bash

4、進入容器後,升級並安裝ssh服務端和客戶端,服務端能讓其他主機遠端登入本機,客戶端能讓本機遠端登入其他主機

yum -y update

yum -y install passwd openssl openssh-server  openssh-clients

5、建立 /var/run/sshd/目錄,要不然sshd服務啟動會報錯

mkdir  /var/run/sshd/

6、編輯sshd的配置檔案/etc/ssh/sshd_config,將其中的UsePAM yes改為UsePAM no

可以進入sshd_config檔案中去修改,也可以使用命令:

 sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

7、建立公私金鑰,輸入命令後,直接按兩次enter鍵確認就行了

 ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

 ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

 ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

8、完成上述幾步後,可以開啟ssh服務了

/usr/sbin/sshd -D &


此時使用命令ps -ef | grep sshd  便可以看到


輸入命令

yum -y install lsof

 lsof -i:22          //如果在/etc/ssh/sshd_config檔案中將埠22修改了,那麼填寫你修改了的埠


9、修改root密碼

passwd 

然後輸入設定的密碼

10、測試

a、登入其他主機

輸入命令ssh localhost,然後輸入之前設定的root密碼


上圖中可以看到已經登入到本機了,也就說容器中的主機擁有了ssh遠端登入其它主機的能力,當然你也可以登入其他主機。

要退出的話,輸入命令exit即可。

b、宿主機能登入本機(容器中的主機)

輸入命令vi  /etc/hosts


得到容器中的主機的ip地址172.17.0.5(可能和你得到的不一樣)

然後在宿主機中開啟一個新的終端輸入命令

ssh [email protected]

輸入剛剛設定的密碼,即可以ssh登入到容器中的主機了


11、配置ssh無密碼登入

ssh-keygen -t rsa

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

輸入完後,這時再輸入命令

ssh localhost

發現並不用在輸入命令了:)。

ssh無密碼登入可用hadoop叢集中master主節點無密碼登入從節點。