使用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链接容器

测试:

 

 

 

 

 

 

 

   

posted @ 2022-11-16 19:28  杨宇飞  阅读(2715)  评论(0编辑  收藏  举报