Centos上Docker 使用dockerfile构建容器实现ssh

时间:2022-08-17 14:21:05

这几日在学习docker、遇到的问题数一年都数不完,网上大多数都是ubuntu的,百度或者谷歌的时候心好累。写写文档来帮助使用centos的docker爱好者们。 

docker基本操作这里就不介绍了        编写时间为:2015年12月25日17:41:41

如果你是准备开始学习,或者准备想用ssh实现连接容器这个功能时,请先自己折腾一下。不然达不到学习的目的哦

 

ssh -p 32772 root@192.168.0.38
Read from socket failed: Connection reset by peer

看到这个报错我估计大多数同学都很烦燥,恭喜你,找到了这篇文章

 

这里我们直接上dockerfile 

#syw/centos:ssh
#
#by:V

FROM centos:centos6.6              
MAINTAINER syw "907765003@qq.com"       
RUN yum -y install openssh-server;yum clean all
RUN mkdir /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN /bin/echo 'root:123456'|chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
EXPOSE 22
CMD /usr/sbin/sshd -D

 使用build打包成image

docker build -t syw/centos6:ssh .

 这里有时候会因为网络原因,或者一些其他原因导致打包的镜像名称为<none> ,如果出现这个错误就说明 打包的这个镜像是错误的。(也可以注意build过程中的strin)

如果成功会提示打包成功的哦

Successfully built 3ea906c5b3a9

这里我们创建一个容器来实验一下

docker run -d -P --name endtest syw/centos6:ssh

 在查看容器状态,如果没有退出说明试验成功docker ps

Centos上Docker 使用dockerfile构建容器实现ssh

如果容器里面没有持续运行的进程,容器就会退出。 这里我们看到容器暴露的22端口对应宿主机的32769

所以我们来ssh验证一下

Centos上Docker 使用dockerfile构建容器实现ssh

退出不关闭容器的命令为 ctrl+p+q  这里也顺便记录一下KVM 的为 ctrl+[

 

                                              有疑问可留言!