首页 > 其他 > 详细

支持ssh的docker镜像

时间:2017-01-02 00:14:52      阅读:370      评论:0      收藏:0      [点我收藏+]

以centos为基础,目的使用ssh服务远程连接docker容器

环境:宿主机centos7,直接搜索docker的centos镜像,下载最新版本

1、先安装docker:yum install -y epel-release

                       yum install -y docker

2、启动docker: systemctl start docker.service

3、使用ps查看docker是否启动

      ps aux |grep docker

4、下载centos的docker镜像

      docker pull centos下载最新版本

      查看镜像如图所示

技术分享

此时的镜像里除了基础的centos系统外,没有其他服务及工具

5、启动centos容器

    docker run -it --name=centos-ssh centos /bin/bash

6、进入到容器中,升级并安装ssh组件

    yum -y update

    yum -y install openssh-server

7、编辑sshd的配置文件/etc/ssh/sshd_config,将其中PAM参数设置为no

    UsePAM yes    ---》   UsePAM no

    UsePrivilegeSeparation sandbox   -----》 UsePrivilegeSeparation no

8、在宿主机中生成密钥对,把生成的公钥文件内容复制到容器的/root/.ssh/authorized_keys里

如果没有请创建。

ssh-keygen -t rsa直接回车即可,查看公钥内容,并复制到容器中

cat /root/.ssh/id_rsa.pub

9、设置容器root密码

echo "root:123456"|chpasswd

10、启动sshd服务并退出容器

/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
执行如下命令
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 ""

exit

如果sshd服务启动时报错

[root@e813dfb36be9  /]# systemctl status sshd.service
Failed to get D-Bus connection: Operation not permitted

可以用这个命令
 /usr/sbin/sshd &


11、生成支持ssh的新centos镜像

首先查看容器docker ps -a

技术分享

生成镜像

docker commit e813dfb36be9 sshd-centos

此时生成一个名为sshd-centos的镜像

docker images查看

技术分享

12、运行该镜像并启动sshd服务

docker run -p 10022:22 -d sshd-centos /usr/sbin/sshd -D

说明: 10022是宿主机的和容器的通讯端口,外面窗口(局域网)通过访问地址

ssh root@宿主机IP 10022(IP和端口之间有空格,不是:)就能进入容器


支持ssh的docker镜像

原文:http://9052689.blog.51cto.com/9042689/1888022

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