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

通过Dockerfile创建SSH服务的CentOS镜像

2017-11-21 16:02 1281 查看
通过Dockerfile创建支持SSH服务的CentOS镜像

1、在/root目录下新建sshd_centos目录用于存放Dockerfile和其他相关文件。

[root@node4 sshd_centos]# vim run.sh

#!/bin/bash

/usr/sbin/sshd –D

3、在宿主机上生成RSA密钥

[root@node4 sshd_centos]# cp /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /root/sshd_centos

[root@node4 sshd_centos]# cat ssh_host_rsa_key.pub>authorized_keys

[root@node4 sshd_centos]# cat Dockerfile
#生成的新镜像以centos镜像为基础
FROM centos
MAINTAINER by liuguangshun (liuguangshun@zljr100.com)
#升级系统
RUN yum -y update
#安装openssh-server
RUN yum -y install openssh-server
#修改/etc/ssh/sshd_config
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
#将密钥文件复制到/etc/ssh/目录中
ADD ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key
ADD ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub
RUN mkdir -p /root/.ssh
ADD authorized_keys /root/.ssh/authorized_keys
RUN chown :ssh_keys /etc/ssh/ssh_host_rsa_key
RUN chown :ssh_keys /etc/ssh/ssh_host_rsa_key.pub
#将ssh服务启动脚本复制到/usr/local/sbin目录中,并改变权限为755
ADD run.sh /usr/local/sbin/run.sh
RUN chmod 755 /usr/local/sbin/run.sh
#变更root密码为147258
RUN echo "root:123456"|chpasswd
#开放窗口的22端口
EXPOSE 22
#运行脚本,启动sshd服务
CMD ["/usr/local/sbin/run.sh"]

此时 /root/sshd_centos目录下应该存在如下文件:
[root@node4 sshd_centos]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
sshd_dockerfile     latest              421be3ddedab        2 minutes ago       335.4 MB
docker.io/centos    latest              196e0ce0c9fb        6 weeks ago         196.6 MB


7、以新创建的镜像新建容器

[root@node4 sshd_centos]# docker run -p 10022:22 -d /usr/local/sbin/run.sh

将宿主机的10022端口映射到容器的22端口,并启动sshd服务。 

现在就可以使用ssh工具远程通过宿主机的10022端口访问容器了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: