Build an ubuntu_sshd
image on windows
Build the image
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. Make the following substitutions:
- With
RUN echo 'root:
MyPassword
' | chpasswd
, replace “MyPassword
” with the password you’ve previously generated.
FROM ubuntu:latest
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:MyPassword' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Build the image using:
$ docker build -t ubuntu_sshd .
Run a test_sshd
container
Then run it. You can then use docker port
to find out what host port
the container’s port 22 is mapped to:
$ docker run -d -P --name test_sshd ubuntu_sshd
$ docker port test_sshd 22
0.0.0.0:49154
And now you can ssh as root
on the container’s IP address (you can find it
with docker inspect
) or on port 49154
of the Docker daemon’s host IP address
(ip address
or ifconfig
can tell you that) or localhost
if on the
Docker daemon host:
Clean up
Finally, clean up after your test by stopping and removing the container, and then removing the image.
$ docker container stop test_sshd
$ docker container rm test_sshd
$ docker image rm ubuntu_sshd