docker 不用supervisord开启sshd 部署2

http://www.4linuxfun.com/docker-install-ssh-service/

 

  1. 准备基础镜像
    出于学习目的,我使用的镜像都是自己打包的,感兴趣的可以看看我上一篇介绍centos下学习docker,其中有具体的镜像制作方法。
  2. 创建容器

    #docker run -i -t centos6.5:version-1 /bin/bash
    我使用的镜像是centos6.5,其中version-1是tag,使用-i参数进入交互模式,并且运行/bin/bash

  3. ssh服务安装
    • 安装ssh服务

      #yum install openssh-server -y

    • 安装passwd(修改密码需要)

      #yum install passwd -y

    • 修改sshd_config配置文件

      UsePAM yes改成UsePAM no

    • 关闭主机selinux

      当使用passwd修改容器中root密码的时候,会报错:
      passwd: system_u:system_r:initrc_t:s0 is not authorized to change the password of root
      这时候,需要关闭主机selinux。

  4. 开机自起
    在/root目录下创建run.sh脚本,添加如下内容:

    !/bin/bash
    /usr/sbin/sshd -D
    while:
    do
    sleep 10
    done

    其实开机自起可以用CMD的,但是暂时不会。。。就统一用脚本执行的方式防止退出,感觉可调控行蛮好的 注意,修改run.sh的权限为777

  5. 保存修改
    • 查看正在运行的容器ID

      #docker ps

    • commit修改的容器ID,保存为centos6.5,tag为sshd

      #docker commit ID centos6.5:sshd

  6. 开启服务

    #docker run -d -p 22:22 -t centos6.5:sshd /root/run.sh
    以后台模式运行容器,且把容器的22端口映射到主机的22端口
    这样,就可以从外网通过ssh连接到容器了。

PS:越来越喜欢docker了,学习nginx搭建反代理,我直接同一个镜像弄3~4个开启apache服务的容器,环境搭建速度是相当的快。


分享到: 微信 更多