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:
commit
b16bfbaddd
2 changed files with 35 additions and 34 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
```
|
||||||
|
|
Loading…
Add table
Reference in a new issue