在Docker容器中启动SSHD服务,并通过SSH远程登录Docker容器。
启动容器
1 | [root@hgs ~]# docker run -itd --name mycontainer myimage[:tag] |
安装SSHD
1.要想在容器中执行命令,可以使用Docker中的exec
命令:
1 | [root@hgs ~]# docker exec -it mycontainer /bin/bash |
2.安装SSHD服务
- Ubuntu
1 | apt-get install openssh-server |
- CentOS
1 | yum install -y openssh-server |
配置SSHD
修改/etc/ssh/sshd_config文件,将PermitRootLogin
的值(默认值为prohibit-password
)更新为yes
:
1 | 允许root用户登录 |
创建新容器
1.生成新镜像。使用Docker中的commit
命令可以从容器创建一个新的镜像。
1 | [root@hgs ~]# docker commit mycontainer newimage[:tag] |
2.根据新镜像,创建并启动新容器
1 | [root@hgs ~]# docker run -itd --name mycontainer2 -p 6666:22 -v /root/hegongshan:/home newimage |
3.在新容器中开启SSHD服务
- 自动启动
1 | Ubuntu |
- 手动启动
1 | /usr/sbin/sshd -D & |
启动过程中可能会出现如下提示:
1 | root@145e68ad0d95:/# /usr/sbin/sshd -D & |
如果出现上述提示,则需要创建privilege separation directory:
1 | root@145e68ad0d95:/# mkdir /var/run/sshd |
4.修改root用户的密码
1 | root@145e68ad0d95:/# passwd root |
测试SSH登录
测试用端口映射登陆容器:
1 | ssh root@hostname -p 6666 |