• Docker使用Dockerfile创建支持ssh服务自启动的容器镜像


    原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

    1. 首先创建一个Dockerfile文件。文件内容例如以下

    # 选择一个已有的os镜像作为基础
    FROM centos:centos6
     
    # 镜像的作者
    MAINTAINER Fanbin Kong "kongxx@hotmail.com"
     
    # 安装openssh-server和sudo软件包,而且将sshd的UsePAM參数设置成no
    RUN yum install -y openssh-server sudo
    RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
     
    # 加入測试用户admin。passwordadmin,而且将此用户加入到sudoers里
    RUN useradd admin
    RUN echo "admin:admin" | chpasswd
    RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers
     
    # 以下这两句比較特殊,在centos6上必需要有。否则创建出来的容器sshd不能登录
    RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
     
    # 启动sshd服务而且暴露22port
    RUN mkdir /var/run/sshd
    EXPOSE 22
    CMD ["/usr/sbin/sshd", "-D"]

    Dockerfile文件有自己的语法和命令。详细能够參考Docker的官方文档。

    2. 有了Dockerfile文件以后,就能够依据Dockerfile来创建image文件了。在Dockerfile所在的文件夹下,执行以下的命令
    sudo docker build -t centos6-ssh .
    命令成功后,就会创建一个名字为centos6-ssh的image,能够使用“sudo docker images”来查看。


    3. 此时就能够依据上面创建出来的image文件来创建自己的容器了,以下的命令会创建一个名字为“mytest”的容器。


    sudo docker run -d -P --name=mytest centos6-ssh

    4. 有了容器,就能够測试我们的ssh服务了。


    4.1 执行“sudo docker inspect mytest”,查看当前启动容器IP地址。然后执行以下的命令来測试

    ssh admin@<容器IP>
    4.2 另外,也能够通过docker的port映射来訪问, 使用“sudo docker port mytest 22”查看当前容器的22port相应的宿主机器的port,然后通过以下的命令来訪问
    ssh admin@<宿主机器IP> -p <宿主机器port>


  • 相关阅读:
    LeetCode Power of Three
    LeetCode Nim Game
    LeetCode,ugly number
    LeetCode Binary Tree Paths
    LeetCode Word Pattern
    LeetCode Bulls and Cows
    LeeCode Odd Even Linked List
    LeetCode twoSum
    549. Binary Tree Longest Consecutive Sequence II
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6773080.html
Copyright © 2020-2023  润新知