主要思路:在容器里設(shè)置ssh服務(wù)開機(jī)自啟,然后保存為鏡像,。下次創(chuàng)建容器的時候加上-p 參數(shù),,進(jìn)行22端口映射即可。
實(shí)驗(yàn)部分:
使用vmware進(jìn)行實(shí)驗(yàn),,博主使用docker pull centos,,拉取了centos鏡像。
創(chuàng)建一個centos7的容器, 指令:docker run -it --name 自定義容器名 鏡像名
docker run -it --name my_ssh1 b5b4d78bc90c
成功進(jìn)入容器:
安裝ssh服務(wù)
yum install -y openssh-server
修改密碼
passwd root
然后會提示你輸入新密碼 (兩次)
打開ssh服務(wù)
/usr/sbin/sshd -D &
&表示在后臺運(yùn)行,,然后結(jié)果如下圖,,表示成功運(yùn)行
如果報(bào)錯,則需要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 ''
創(chuàng)建一個腳本文件,,在文件里寫入啟動ssh的指令,,設(shè)置開機(jī)自啟即可
vi /run.sh
輸入以下內(nèi)容
設(shè)置文件權(quán)限
chmod +x run.sh
配置完以上內(nèi)容, 使用exit退出容器,使用docker ps -a 查看容器
使用commit提交修改內(nèi)容,,docker commit 容器ID 鏡像:tag
docker commit 55b84552304f my_ssh:v2
回車,,使用docker images 查看鏡像
這就是我們剛剛提交的鏡像
以該鏡像為模板,,生成容器,并設(shè)置端口映射
docker run -id --name ssh_test1 -p 2233:22 3556c32869fa /run.sh
后面的/run.sh 是使用CMD指令,,在啟動容器時,,會執(zhí)行改CMD內(nèi)容,意思就是開機(jī)的時候,,啟動run.sh腳本(我們在上面設(shè)置的開啟ssh服務(wù)的腳本)
接下來進(jìn)行測試
賬號密碼為我們在上一個容器設(shè)置的內(nèi)容,。
個人理解
使用docker的好處,比如有一個服務(wù)器,,需要給多個人分配賬號使用,,單純使用adduser指令進(jìn)行帳戶分配,是沒有root的,,就算有,,使用了root會影響到其他帳戶的內(nèi)容,導(dǎo)致環(huán)境污染,。
使用docker,,我們可以多創(chuàng)建幾個容器,映射幾個端口給他人使用,,每個人都是單獨(dú)的root,,隨便怎么玩,不會污染環(huán)境,。
以上觀點(diǎn),,有說的不對的地方,歡迎指正,。
|