Docker 容器开启ssh登录
上一文中已经介绍了docker的安装和容器的创建等,但是创建出来的容器只能通过宿主机进行登录,有时候还是希望直接通过SSH 登录到docker容器中进行一些修改,其实非常简单,只需要将容器中ssh端口映射到宿主机,然后在容器中安装openssh 服务即可。1.创建容器时指定映射的端口docker run -it --name centos6.8 -p 2222:22 6bdbedefc4...
·
上一文中已经介绍了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 #可以看到该镜像已经创建成功,下次需要新建容器时可直接使用该镜像
更多推荐
已为社区贡献4条内容
所有评论(0)