Dockerfile
FROM ubuntu:16.04
# package
RUN apt-get update; apt-get -y install ssh
COPY ssh_config /etc/ssh/ssh_config
# ssh
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config && sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN echo "root:root" | chpasswd
RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers
RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
RUN mkdir /var/run/sshd
EXPOSE 22
CMD [ "sh", "-c", "service ssh start && bash"]
生成镜像
docker build -t sshimage ./
验证ssh互信
启动第一个docker容器,然后会进入bash,执行hostname -i来获取ip。
# docker run --rm -it sshimage
root@cbdf1f5e7e0f:/# hostname -i
172.17.0.4
再启动另一个容器,并执行ssh $ip。
# docker run --rm -it sshimage
* Starting OpenBSD Secure Shell server sshd [ OK ]
root@ecaa455762df:/# ssh 172.17.0.4
Warning: Permanently added '172.17.0.4' (ECDSA) to the list of known hosts.
root@cbdf1f5e7e0f:~# hostname -i
172.17.0.4
可以看到,ssh成功。