1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #26699 from thaJeztah/update-sshd-example

Update sshd example to use ubuntu 16.04
This commit is contained in:
Sebastiaan van Stijn 2016-09-19 13:17:51 +02:00 committed by GitHub
commit b16bfbaddd
2 changed files with 35 additions and 34 deletions

View file

@ -1,14 +1,10 @@
# sshd FROM ubuntu:16.04
#
# VERSION 0.0.2
FROM ubuntu:14.04
MAINTAINER Sven Dowideit <SvenDowideit@docker.com> MAINTAINER Sven Dowideit <SvenDowideit@docker.com>
RUN apt-get update && apt-get install -y openssh-server RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login # 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 RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

View file

@ -16,48 +16,52 @@ 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 can use to connect to and inspect other container's volumes, or to get
quick access to a test container. quick access to a test container.
# sshd ```Dockerfile
# FROM ubuntu:16.04
# VERSION 0.0.2 MAINTAINER Sven Dowideit <SvenDowideit@docker.com>
FROM ubuntu:14.04 RUN apt-get update && apt-get install -y openssh-server
MAINTAINER Sven Dowideit <SvenDowideit@docker.com> RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN apt-get update && apt-get install -y openssh-server # SSH login fix. Otherwise user is kicked off after login
RUN mkdir /var/run/sshd RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login ENV NOTVISIBLE "in users profile"
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd RUN echo "export VISIBLE=now" >> /etc/profile
ENV NOTVISIBLE "in users profile" EXPOSE 22
RUN echo "export VISIBLE=now" >> /etc/profile CMD ["/usr/sbin/sshd", "-D"]
```
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Build the image using: Build the image using:
$ docker build -t eg_sshd . ```bash
$ docker build -t eg_sshd .
```
## Run a `test_sshd` container ## Run a `test_sshd` container
Then run it. You can then use `docker port` to find out what host port Then run it. You can then use `docker port` to find out what host port
the container's port 22 is mapped to: the container's port 22 is mapped to:
$ docker run -d -P --name test_sshd eg_sshd ```bash
$ docker port test_sshd 22 $ docker run -d -P --name test_sshd eg_sshd
0.0.0.0:49154 $ 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 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 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 (`ip address` or `ifconfig` can tell you that) or `localhost` if on the
Docker daemon host: Docker daemon host:
$ ssh root@192.168.1.2 -p 49154 ```bash
# The password is ``screencast``. $ ssh root@192.168.1.2 -p 49154
root@f38c87f2a42d:/# # The password is ``screencast``.
root@f38c87f2a42d:/#
```
## Environment variables ## Environment variables
@ -78,7 +82,8 @@ short script to do the same before you start `sshd -D` and then replace the
Finally, clean up after your test by stopping and removing the Finally, clean up after your test by stopping and removing the
container, and then removing the image. container, and then removing the image.
$ docker stop test_sshd ```bash
$ docker rm test_sshd $ docker stop test_sshd
$ docker rmi eg_sshd $ docker rm test_sshd
$ docker rmi eg_sshd
```