zoukankan      html  css  js  c++  java
  • Docker(2):使用Dockerfile创建支持SSH服务的镜像

    1、创建工作目录

    # mkdir sshd_ubuntu  

    # ls  

    在其中,创建Dockerfile和run.sh文件

    # cd sshd_ubuntu/  

    # touch Dockerfile run.sh  

    # ls  

    2、 编写run.sh脚本和authorized_keys文件

    # vi run.sh  

    写入内容:

    #! /bin/bash
    
    /usr/sbin/sshd –D

    在宿主主机上生成SSH密钥对,并创建authorized_keys

    # ssh-keygen –t rsa  

    # cat ~/sshd_ubuntu/id_rsa.pub >authorized_keys  

    # ls  

    3、编写Dockerfile

    #设置继承镜像
    FROM ubuntu
    #提供一些作者的信息
    MAINTAINER from www.dockerpool.com by Aiden
    #下面开始运行命令,此处更改Ubuntu的源为国内163的源
    RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
    RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
    RUN apt-get update
    #安装ssh服务
    RUN apt-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
    #复制配置文件到相应位置,并赋予脚本可执行权限
    ADD authorized_keys /root/.ssh/authorized_keys
    ADD run.sh /run.sh
    RUN chmod 755 /run.sh
    #开放端口
    EXPOSE 22
    #设置自启动命令
    CMD ["/run.sh"]

    4、创建镜像

    注意一下,在最后还有一个“.”,表示使用当前目录中的Dockerfile

    # docker build –t ssh:dockerfile .  

    命令执行完毕后,如果可见“Successfully built XXX”字样,则说明镜像创建成功。可以看到,以上命令生成的镜像ID是18d5664af464

    在本地查看镜像sshd:dockerfile镜像已存在:

    #docker images  

    5、测试镜像,运行容器

    使用刚才创建的sshd:dockerfile镜像来运行一个容器。直接启动镜像,映射容器的22端口到本地的10122端口。

    # docker run –d –p 10122:22 sshd:dockerfile  

    # docker ps  

    在宿主主机新打开一个终端,连接到新建的容器

    # ssh 192.168.56.33 –p 10122  

    镜像创建成功

  • 相关阅读:
    739. Daily Temperatures
    556. Next Greater Element III
    1078. Occurrences After Bigram
    1053. Previous Permutation With One Swap
    565. Array Nesting
    1052. Grumpy Bookstore Owner
    1051. Height Checker
    数据库入门及SQL基本语法
    ISCSI的概念
    配置一个IP SAN 存储服务器
  • 原文地址:https://www.cnblogs.com/guoxiangyue/p/10021885.html
Copyright © 2011-2022 走看看