您的位置:首页 > 运维架构 > Docker

基于Dockerfile的方式创建SSH服务镜像。

2016-11-16 20:25 946 查看

准备文件

mkdir ssh_Dockerfile && cd ssh_Dockerfile


在ssh_Dockerfile文件中添加3个文件分别是:run.sh(运行脚本),Dockerfile, authorized_keys(存放公钥的文件)。

具体内容都在我的github上出于方便我还是粘一下内容

https://github.com/tonyxinminghui/ssh-serverDockerfile

Dockerfile

#所使用的基础镜像


FROM ubuntu:14.04


#添加作者信息


MAINTAINER tony 445241843@qq.com


#安装SSH服务


RUN apt-get install -y openssh-server


RUN mkdir -p /var/run/sshd


RUN mkdir -p /root/.ssh


#取消pam登录限制


RUN sed -ri 's/session required
pam_loginuid.so/#session   required    pam_loginuid.so' /etc/pam.d/sshd


#添加认证文件和启动脚本


ADD authorized_keys /root/.ssh/authorized_keys


#ADD run.sh /root/run.sh


RUN echo "#!/bin/bash" > /root/run.sh


RUN echo "/usr/sbin/sshd -D" >> /root/run.sh


RUN chmod u+x /root/run.sh


#暴露端口


EXPOSE 22


#设置默认启动的命令


CMD ["/root/run.sh"]


但是这里注意我在运行docker build ./的时候出现了

E: Unable to locate package openssh-server

的错误,解决方案是更新一下源RUN apt-get update就好了。

run.sh

启动脚本文件

#!/bin/bash


/root/sbin/sshd -D


authorized_keys

公钥文件,把运行ssh-client的主机的公钥加到authorized_keys中作为认证。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYMLZxEpNkR+FbHkaONWe/oRP2Pwy17ez4k4DWiKlaG/hP1fVOOTZUKaUupQvV5z8SVIx3wuasKE7bF+L0oA5arECfVAqHXxPR8gHQcrq4Nln2DRz05wkNdXEi3GSgN6a+fqL1+XDPYSzqDWCXVBBmpaTp1rlS3XPospQz4iXh+1LTBB9Rk5tp8zETCVMO7XdKiNqnZ35NPjT07/7wsIlmfwPzvGCK1q3+Z95zJ0Bxpy3Y+pIjy+ZnQW8SOytJ0r9zLz+iP+LOzLAIp0IkCeUBHiws16IT7gIgc3HTr6DZl3DdDEGKvB9bGvtYz4LPc+n25drnFwWP64vIJmY+cnSl root@ubuntu
这是我的虚拟机的公钥。

之后用docker build ./构建镜像。

过后的验证过程在我的上一篇博客中已经提过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息