在Docker中运行SSH进程服务

以下是用Dockerfile设置sshd服务容器,您可以使用连接并检查其他容器的卷,或者可以快速访问测试容器。

  1. # sshd
  2. #
  3. # VERSION 0.0.1
  4. FROM ubuntu:12.04
  5. MAINTAINER Thatcher R. Peskens "thatcher@dotcloud.com"
  6. # make sure the package repository is up to date
  7. RUN apt-get update
  8. RUN apt-get install -y openssh-server
  9. RUN mkdir /var/run/sshd
  10. RUN echo 'root:screencast' |chpasswd
  11. EXPOSE 22
  12. CMD ["/usr/sbin/sshd", "-D"]

使用如下命令构建镜像:

  1. $ sudo docker build --rm -t eg_sshd .

然后运行它,你可以使用docker port来找出容器端口22映射到主机的端口

  1. $ sudo docker run -d -P --name test_sshd eg_sshd
  2. $ sudo docker port test_sshd 22
  3. 0.0.0.0:49154

现在你可以使用ssh登陆Docker进程的主机IP地址,端口是49154(IP地址可以使用ifconfig获取):

  1. $ ssh root@192.168.1.2 -p 49154
  2. # The password is ``screencast``.
  3. $$

最后,清理停止的容器,并且删除容器,然后删除镜像。

  1. $ sudo docker stop test_sshd
  2. $ sudo docker rm test_sshd
  3. $ sudo docker rmi eg_sshd