Docker 容器开启ssh登录

上一文中已经介绍了docker的安装和容器的创建等,但是创建出来的容器只能通过宿主机进行登录,有时候还是希望直接通过SSH 登录到docker容器中进行一些修改,其实非常简单,只需要将容器中ssh端口映射到宿主机,然后在容器中安装openssh 服务即可。

1.创建容器时指定映射的端口

docker run -it --name centos6.8 -p 2222:22 6bdbedefc4d1
[root@myaliyun ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
c51dfb838b52        6bdbedefc4d1        "/bin/bash"         About an hour ago   Up About an hour    0.0.0.0:2222->22/tcp   centos6.8  

另外在宿主机上也是可以看到对应的端口是否被docker容器监听了

netstat -tunlp
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN      5277/docker-proxy   

2.登录容器中,修改root密码,安装openssh服务

docker exec -it centos6.8 /bin/bash
[root@c51dfb838b52 ~]#passwd    #修改容器中centos系统ROOT账户的密码
[root@c51dfb838b52 ~]#yum -y install openssh*    #安装openssh服务
[root@c51dfb838b52 ~]#service sshd start

3.宿主机添加端口放行

iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
service iptables save

原帖只到这一步,发现服务器会拒绝访问,卡在last login提示。所以还要进行以下步骤:

4.修改容器/etc/ssh/sshd_config

vi /etc/ssh/sshd_config 
PermitRootLogin yes  #允许root用户ssh登录
UsePAM no            ##禁用PAM

最后保存,重启。

service sshd restart

测试登录。

提示我已经从所在的电信网关访问,成功。

为了方便以后使用,可以将这个开启了ssh登录的容器保存为镜像

docker commit c51dfb838b52 centos_6.8_ssh   #容器ID  创建的镜像名
docker images   #可以看到该镜像已经创建成功,下次需要新建容器时可直接使用该镜像

参考原帖https://www.cnyunwei.cc/archives/456

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值