docker開啓ssh服務

主要思路:在容器裏設置ssh服務開機自啓,然後保存爲鏡像。下次創建容器的時候加上-p 參數,進行22端口映射即可。

實驗部分:

使用vmware進行實驗,博主使用docker pull centos,拉取了centos鏡像。

創建一個centos7的容器, 指令:docker run -it  --name 自定義容器名 鏡像名

docker run -it  --name my_ssh1 b5b4d78bc90c

成功進入容器:

安裝ssh服務 

yum install -y openssh-server

修改密碼

passwd root

然後會提示你輸入新密碼 (兩次)

 

打開ssh服務

/usr/sbin/sshd -D &

&表示在後臺運行,然後結果如下圖,表示成功運行

如果報錯,則需要ssh公鑰私鑰對

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

創建一個腳本文件,在文件裏寫入啓動ssh的指令,設置開機自啓即可

vi /run.sh

輸入以下內容

#!/bin/bash
/usr/sbin/sshd -D

設置文件權限

chmod +x run.sh

配置完以上內容, 使用exit退出容器,使用docker ps -a 查看容器

使用commit提交修改內容,docker commit 容器ID 鏡像:tag

 docker commit 55b84552304f my_ssh:v2

回車,使用docker images 查看鏡像

這就是我們剛剛提交的鏡像

以該鏡像爲模板,生成容器,並設置端口映射

docker run -id --name ssh_test1 -p 2233:22 3556c32869fa /run.sh

後面的/run.sh 是使用CMD指令,在啓動容器時,會執行改CMD內容,意思就是開機的時候,啓動run.sh腳本(我們在上面設置的開啓ssh服務的腳本)

接下來進行測試 

賬號密碼爲我們在上一個容器設置的內容。

個人理解

使用docker的好處,比如有一個服務器,需要給多個人分配賬號使用,單純使用adduser指令進行帳戶分配,是沒有root的,就算有,使用了root會影響到其他帳戶的內容,導致環境污染。

使用docker,我們可以多創建幾個容器,映射幾個端口給他人使用,每個人都是單獨的root,隨便怎麼玩,不會污染環境。

 

以上觀點,有說的不對的地方,歡迎指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章