zoukankan      html  css  js  c++  java
  • docker基于Dockerfile命令创建支持ssh服务的镜像

    首先,创建一个sshd_centos工作目录:

    [root@localhost ~]# mkdir sshd_centos

    [root@localhost ~]# cd sshd_centos

    [root@localhost sshd_centos]# touch Dockerfile run.sh

     

    [root@localhost sshd_centos]# ssh-keygen -t rsa

    [root@localhost sshd_centos]# cat ~/.ssh/id_rsa.pub > authorized_keys

     

    编写Dockfile文件

    [root@localhost sshd_centos]# vim Dockerfile

    #设置继承镜像

    FROM docker.io/centos

    #提供作者信息

    MAINTAINER from xldwhj

    #开始运行命令

    RUN yum -y update

    #安装openssh-serverfuwu

    RUN yum -y install openssh-server

    #修改/etc/ssh/sshd_config

    RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config

    RUN mkdir -p /var/run/sshd

    RUN mkdir -p /root/.ssh

    RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

    RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

    #复制配置文件到相应位置,并赋予脚本可执行权限

    ADD authorized_keys /root/.ssh/authorized_keys

    ADD run.sh /run.sh

    RUN chmod 755 /run.sh

    #变更root密码为123123

    RUN echo "root:123123"|chpasswd

    #开放22端口

    EXPOSE 22

    #运行脚本,启动sshd服务

    CMD ["/run.sh"]

     

    Dockerfile里的两条ssh-keygen要加上,如果不加ssh启动就会报如下错误。

    在ssh_centos目录下,docker build命令来创建镜像。注意,此条命令后又一个“.”,代表当前目录中的Dockerfile。

    [root@localhost sshd_centos]# docker build -t sshd:dockerfile .

    执行到最后出现Successfully build XXX字样,则说明镜像创建成功。

    [root@localhost sshd_centos]# docker images

    使用sshd:dockerfile镜像运行一个容器。直接起动镜像

    [root@localhost sshd_centos]# docker run -d -p 10222:22 sshd:dockerfile

    [root@localhost .ssh]# ssh root@192.168.134.130 -p 10022

    如上所示,成功使用ssh登入到容器中。

  • 相关阅读:
    yii2框架(一)安装
    修改hosts搭建本地站点
    php版本管理工具composer安装及使用
    nodejs学习笔记Node.js 调试命令
    angular自定义指令命名的那个坑
    MongoDB Windows环境安装及配置( 一)
    JavaSE 面试题: 类初始化和实例初始化等
    JavaSE 面试题: 成员变量与局部变量
    JavaSE 面试题: 方法的参数传递机制
    JavaSE 笔试题: 自增变量
  • 原文地址:https://www.cnblogs.com/whutxldwhj/p/6429929.html
Copyright © 2011-2022 走看看