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

利用docker创建支持centos的ssh镜像

2017-03-24 19:18 573 查看
  创建docker镜像需要基础镜像,目前官方已提供了多种基础镜像,参见: https://hub.docker.com/explore/
  要想创建支持centos的ssh镜像,就需要以centos镜像为基础来创建,下面是创建步骤:

  1. docker pull centos:6 #获得centos 6系统的镜像

2. 新建在容器中启动sshd服务的脚本,编辑run.sh:

    #!/bin/bash

    /usr/sbin/sshd -D

  3. 在宿主机上生成RSA密钥,然后将生成的密钥复制到sshd_centos目录中:

    ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

    cp /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub /root/sshd_centos

    cat ssh_host_rsa_key.pub>authorized_keys

  4. 在/root/sshd_centos目录下新建Dockerfile文件:

#生成的新镜像以centos镜像为基础
FROM centos
MAINTAINER by cmzsteven (changmingzhi@163.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
#将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:147258"|chpasswd
#开放窗口的22端口
EXPOSE 22
#运行脚本,启动sshd服务
CMD ["/usr/local/sbin/run.sh"]


  5. 切换到Dockerfile文件夹,编译生成镜像:

    docker build -t sshd:dockerfile .

  6. 查看镜像文件情况:

   docker images

   


  7. 利用新建的镜像启动一个容器:

    docker run -d -p 10022:22 sshd:dockerfile /usr/local/sbin/run.sh

    其中:将宿主机的10022端口映射到容器的22端口,并启动sshd服务。 现在就可以使用ssh工具远程通过宿主机的10022端口访问容器了。

  如果想编译docker源码,则需要以docker镜像作为基础镜像(官方建议,内部已集成编译环境),也就是说所有关于镜像都需要由基础镜像出发进行创建。

  

相关文章:

Docker源码分析
http://www.infoq.com/cn/articles/docker-source-code-analysis-part1/
Dcokerfile书写规则
http://blog.csdn.net/qinyushuang/article/details/43342553
Docker源码编译
http://www.cnblogs.com/styshoo/p/5824895.html
涉及cgroup资源控制的配置
http://baike.baidu.com/link?url=jRMznyBNXOVJG9rVmLNt_bim7HgLIYgT4fbynJp0uqG25lMBmVHQZxxJRp1LYoYqRE1RDsZrKQbM7u62xB5gQK
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: