制作一个提供sshd基础服务的镜像

关于container是否提供ssh服务,大家一直在争论。目前docker对远程主机登入container并没有更好的办法,除了登录宿主机用attach或exec登录外,只能在container安装sshd服务了,通过这个基础镜像我们在安装其他服务的时候,就可以直接使用有ssh服务的镜像了。

  1. 使用Dockerfile方法

    前期准备工作

    #mkdir sshd_ubuntu        创建工作目录

    #cd sshd_ubuntu

    #touch Dockerfile run.sh          创建一会需要拷贝到container的文件

    #vi run.sh                            run.sh的内容

             #!/bin/bash

             /usr/sbin/sshd�CD

    #cat ~/.ssh/id_rsa.pub > authorized_keys      拷贝需要登录到container的机器的公钥

    编写Dockerfile

    ------------------------------------

    #设置继承镜像

    FROMubuntu:163

    #提供者信息

    MAINTAINERfrom buranle,test sshd images

    #因为使用的镜像已经修改为163apt源,这里就不做修改了

    #安装ssh服务

    RUNapt-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/g' /etc/pam.d/sshd

    #复制文件到响应的位置,并赋予脚本执行权限

    ADDauthorized_keys /root/.ssh/authorized_keys

    ADDrun.sh /run.sh

    RUN chmod755 /run.sh

    #开放端口

    EXPOSE 22

    #设置自启动命令

    CMD ["/run.sh"]

    ----------------------------------------------

         #dockerbuild -t sshd:dockerfile .

         看到success字样就代表我们的image已经生成成功了。

         #dockerimages

wKioL1SyufTy5RYQAADWtmwHG8U389.jpg

         #dockerrun �Cd �Cp 11111:22 sshd:dockerfile

wKiom1SyuSzAFs3OAAGPG2ytAzY130.jpg

 

2、当然我们也可以使用commit的方法,这里就不多介绍了

注:使用apt使用网易源的方法

更改/etc/apt/sources.list或者在source.d下新建一个163.list,内容为


你可能感兴趣的:(docker)