使用ssh链接访问docker容器
需求:
通过ssh链接docker容器
基础镜像-Centos:
例:
#拉取centos镜像 docker pull centos #启动一个并访问centos容器 docker run -it centos /bin/bash
①在容器内安装 passwd(用来更改使用者的密码)并修改需要通过ssh链接访问服务器的用户密码
以下演示使用root用户
#安装passwd yum install passwd
#修改root用户密码 passwd root
②安装openssh
yum install openssh-server -y
③生成容器的公钥、私钥。首次生成不建议填写密码
cd /etc/ssh cat sshd_config #启动ssh服务默认需要以下RSA key ,需要手动生成 #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_ecdsa_key #HostKey /etc/ssh/ssh_host_ed25519_key #生成HostKey ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
未生成HostKey前:
生成HostKey后:
④ 编写启动sshd服务的脚本
#在根目录下创建run.sh脚本 vi /run.sh #设置脚本内容启动sshd服务 #!/bin/bash /usr/sbin/sshd -D & #设置可执行权限 chmod +x /run.sh
⑥退出&&重新进入docker容器
#退出&&保存镜像 docker ps -a #根据容器id使用commit命令生成新的镜像 docker commit CONTAINERID centos-ssh #启动容器 docker run -d -p 2222:22 centos-ssh /run.sh #参数说明 -d 后台启动 -p 将容器22端口映射到宿主机2222端口
执行成功后如下图:
完成以上操作后,便可以使用ssh链接容器
测试: