docker 中运行 sshd 服务
创建Dockerfile
# sshd
#
# VERSION 0.0.2
FROM ubuntu:14.04
MAINTAINER admln <admln@docker.com>
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:admln' | chpasswd
RUN sed -i 's/PermitRootLogin without-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"]
构建镜像
sudo docker build --rm -t example_sshd .
运行它然后找出映射到主机的端口
sudo docker run -d -P --name the_sshd example_sshd
sudo docker port the_sshd 22
得到映射到主机的端口
测试连接
ssh root@127.0.0.1 -p 49160
欲为大树,何与草争;心若不动,风又奈何。