來源:https://blog.csdn.net/qq_32969313/article/details/64919735
docker安裝好后,自己動手做個自己的docker鏡像,首先需要從服務器pull下一個基礎的鏡像,這里用centos7
(最好是root用戶下,我虛擬機中的docker普通用戶運行docker提示服務沒有運行,奇怪)
一、下載官方原始鏡像
docker pull centos:7
1
稍等一會下載完成,使用
docker images
1
查看本地的鏡像列表,如圖,centos那個就是剛才下載的
接着用以下命令啟動,使用image創建container並進入交互模式, login shell是/bin/bash
docker run -i -t centos:7 /bin/bash
1
接着終端就是容器中的centos的了,默認是root用戶登錄,接下來的操作都在容器中了
二、容器中安裝passwd,openssl,openssh-server
yum install passwd openssl openssh-server -y
1
安裝完成后
啟動sshd:
# /usr/sbin/sshd -D
1
這時報以下錯誤:
[root@ b3426410ff43 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
執行以下命令解決:
[root@b3426410ff43 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@b3426410ff43 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@b3426410ff43 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
1
2
3
然后,修改 /etc/ssh/sshd_config 配置信息:
UsePAM yes 改為 UsePAM no
UsePrivilegeSeparation sandbox 改為 UsePrivilegeSeparation no
可以用vi改,也可以用下面命令
[root@b3426410ff43 /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@b3426410ff43 /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
1
2
修改完后,重新啟動sshd
[root@b3426410ff43 /]# /usr/sbin/sshd -D
1
然后修改root密碼
passwd root
1
或者直接一句修改
echo “123456″ | passwd --stdin root
1
接着需要把修改后的鏡像保存了,首先輸入exit退出容器,再使用下面命令查看剛運行過的,
docker commit將修改后鏡像保存到本地,參數是ID,名字
#docker ps -all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b3426410ff43 centos:7 "/bin/bash" 4 minutes ago Exited (0) 4 seconds ago centos7ssh
#docker commit b5926410fe60 myimage/centos7-ssh
1
2
3
4
下次可以輸入剛保存的名字啟動修改過安裝了ssh服務的鏡像了。
---------------------
版權聲明:本文為CSDN博主「姚__」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_32969313/article/details/64919735