首先创建一个centos7容器:
docker run --privileged=true --name=centos_1 -id -p 2003:22 -p 10151-10200
:10151-10200 centos:7 /sbin/init
参数:
--privileged=true :表示以超级权限运行该容器
-p 2003:22 :这个参数十分重要,一定要预留一个22端口用来维护ssh连接!
/sbin/init :这里需要注意不能用/bin/bash,因为会导致部分sbin中的命令无法使用!
容器启动:
docker exec -it centos_1 /bin/bash
首先更新yum源:
yum update
然后需要分别下载openssh-server和openssh-clients:
yum install -y openssh-server
yum install -y openssh-clients
下载完成后需要修改ssh配置:
vi /etc/ssh/sshd_config
添加如下配置:(也可以直接找到对应的位置打开注释)
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录
然后需要配置本地的root账号的密码:
passwd root
这里要注意密码得安装sshd服务后设置,否则ssh连接会提示密码错误
完成后需要打开sshd服务才可以连接:
systemctl start sshd
这里建议设置一下开机自启动:
systemctl enable sshd
检查一下sshd服务状态:
systemctl status sshd
结果如下所示:
然后输入exit退出容器:
exit
在宿主机尝试使用ssh客户端连接容器:
ssh 127.0.0.1 -p 2003
注意,这里的ip是使用本机的ip,端口为一开始做本机与容器22端口映射的端口!
需要输入一次yes再输入root密码。
至此大功告成,完成需求!