首页 > 其他 > 详细

用ssh连接docker容器

时间:2020-08-22 11:01:32      阅读:85      评论:0      收藏:0      [点我收藏+]
  1. 拉取镜像,这里采用centos:7作为基础镜像
docker pull centos:7
  1. 运行镜像,生成容器
docker run -d --name ssh_box --privileged=true centos:7 /usr/sbin/init
07228ec257564c4874ca24216d651bda65573d49e4149064a079cacca27de4e1 # 生成的容器ID

--name 给新生成的容器命名
--privileged=true 给容器访问Linux内核特权,后面要访问systemctl
返回一串容器ID表示容器生成成功
3. 进入刚刚生成的容器

docker exec -it 07228ec25756 /bin/bash
  1. 进入容器后,使用passwd密码来修改密码(如提示没有这个命令行使用yum install passwd安装)
    passwd
    技术分享图片

4.安装vim和Openssh(docker 容器中执行)
yum install vim openssh-server openssh-clients -y
5.修改SSH配置文件
?vim /etc/ssh/sshd_config

PubkeyAuthentication yes #启用公钥私钥配对认证方式 
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同) 
PermitRootLogin yes #root能使用ssh登录
ClientAliveInterval 60  #参数数值是秒 , 是指超时时间
ClientAliveCountMax 3 #设置允许超时的次数
  1. 重启ssh服务,并设置开机启动
    systemctl restart sshd.service
    systemctl enable sshd.service
    Failed to get D-Bus connection: Operation not permitted
    这里如果报这个错误说明容器权限不足,第2步执行有误
    7.退出容器并保存更改
    exit
  2. 用刚才生成的容器创建镜像
    docker commit -m ‘openssh‘ -a ‘Docker for ssh‘ ffe81683c404 ssh_box

-m:来指定提交的说明信息,跟我们使用的版本控制工具一样
-a?可以指定更新的用户信息
ffe81683c404: 创建镜像的容器的ID,就是上面的容器id,也就是我们刚才进入的容器id
ssh_box: 目标镜像的仓库名

docker images可以查看到新生成的镜像
技术分享图片

  1. 用新生成的镜像启动新的容器并打通22端口
    docker run -d -p 2222:22 ssh_box /usr/sbin/sshd -D

10.然后可以使用xshell连接新生成的容器

ip: 为宿主主机的ip,而不是docker容器的ip
端口:就是上面的2222
用户名: root
密码: 就是上面password部分设置的密码
在mac上可通过ssh root@ip -p:2222 登录新生成的容器

参考文章

Docker容器使用问题:Failed to get D-Bus connection: Operation not permitted
ssh 直接登录docker容器

用ssh连接docker容器

原文:https://www.cnblogs.com/jesse131/p/13543308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!