CnetOS
制作可以『ssh』登录的『Linux』镜像
下载『centos』镜像
docker pull centos
启动并且登录『centos』容器
docker run -it centos /bin/bash
安装『sshd』依赖
yum -y install openssh-server
yum -y install openssh-clients
启动『sshd』服务,会报如下的错误,大致意识是要个什么『key』
# 守护启动服务
/usr/sbin/sshd -D
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
sshd: no hostkeys available -- exiting.
既然要『key』,就给它『key』,执行以下命令解决报错
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
再次启动服务,这是是守护模式启动,没有报错,就说明启动成功了。直接『Ctrl + C』开始配置登录密码
/usr/sbin/sshd -D
修改密码
passwd root
Changing password for user root.
New password:
设置完成后,退出容器,将容器保存成镜像
exit
查看容器『id』
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED ...
476efa1fd8e9 centos "/bin/bash" 23 minutes ago ...
...
将容器创建成为新的镜像,第一个参数是上面获取的容器『id』,第二个参数是取名『centos-ssh』
docker commit 476efa1fd8e9 centos-ssh
启动容器,将『22』远程连接的端口开放
docker run -d -p 10022:22 centos-ssh /usr/sbin/sshd -D
测试一下,是否能连接上容器
ssh root@localhost -p 10022
输入密码后,能正常连接,截图留念。
将『sshd』添加至开机启动
vi /etc/init.d/sshd_start.sh
#!/bin/sh
#chkconfig: 2345 80 90
/usr/sbin/sshd -D
添加至开机启动
chkconfig --add /etc/init.d/sshd_start.sh
chkconfig sshd_start.sh on