page_title: Dockerizing an SSH service page_description: Installing and running an SSHd service on Docker page_keywords: docker, example, package installation, networking
The following Dockerfile
sets up an SSHd service in a container that you can use to connect to and inspect other container's volumes, or to get quick access to a test container.
# sshd # # VERSION 0.0.1 FROM debian MAINTAINER Thatcher R. Peskens "thatcher@dotcloud.com" # make sure the package repository is up to date RUN apt-get update RUN apt-get install -y openssh-server RUN mkdir /var/run/sshd RUN echo 'root:screencast' |chpasswd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
Build the image using:
$ sudo docker build --rm -t eg_sshd .
Then run it. You can then use docker port
to find out what host port the container's port 22 is mapped to:
$ sudo docker run -d -P --name test_sshd eg_sshd $ sudo docker port test_sshd 22 0.0.0.0:49154
And now you can ssh to port 49154
on the Docker daemon's host IP address (ip address
or ifconfig
can tell you that):
$ ssh root@192.168.1.2 -p 49154 # The password is ``screencast``. $$
Finally, clean up after your test by stopping and removing the container, and then removing the image.
$ sudo docker stop test_sshd $ sudo docker rm test_sshd $ sudo docker rmi eg_sshd