• 制作可以 SSH 登录的 Docker 镜像


    Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作。

    执行这个命令就把源地址改为阿里的:

    curl https://git.oschina.net/feedao/Docker_shell/raw/start/ali-centos.sh | sh

    第一安装Docker:

    yum -y install docker-io

    第二 启动Docker:

    service docker start

    第三安装制作CentOS镜像的工具:

    yum -y install febootstrap

    第四 制作CentOS镜像文件centos6-image目录

    febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/

    第五制作Docker镜像,镜像名字是centos6-base, 最后的点是必须要的

    cd centos6-image && docker build -t centos6-base .
    cd centos6-image && tar -c .|docker import - centos6-base  【测试有效】
     

    第六制作可以ssh登陆的Docker镜像,名字是centos6-ssh

    docker build -t centos6-ssh https://git.oschina.net/feedao/Docker_shell/raw/start/Dockerfile

    经过前面的六个步骤,一个可以登陆的本地docker镜像就制作好了。

    用户名是:root,密码是:123456

    体验步骤:

    创建容器:

    docker run -d -p 127.0.0.1:33301:22 centos6-ssh

    ssh登陆容器:

    ssh root@127.0.0.1 -p 33301

    输入密码后就可以开始折腾了。

    通过授信无密码登陆

    依赖于centos6-ssh镜像,制作第三个自动授信的镜像centos-newssh。

    方法如下:

    curl https://git.oschina.net/feedao/Docker_shell/raw/start/Docker-centos-autossh.sh | sh

    一个命令就行了,这条命令会创建一个新镜像centos-newssh

    开始体验,现在不需要输入root密码了:

    docker run -d -p 127.0.0.1:33306:22 -m 256M centos-newssh
    ssh root@127.0.0.1 -p 33306 "echo $LANG;ifconfig"
     
    如果不想第一次连接的时候输入yes,确认连接,可以使用下面的命令:
    ssh -o StrictHostKeyChecking=no root@127.0.0.1 -p 33306 "echo $LANG;ifconfig"
     
    体验完了,我们来分析下
    https://git.oschina.net/feedao/Docker_shell/raw/start/Docker-centos-autossh.sh
    #!/bin/sh
    [ ! -d /root/.ssh ] && mkdir -p /root/.ssh
    ssh-keygen -q -N "" -t dsa -f /root/.ssh/id_dsa
    KEY_PUB=`cat /root/.ssh/id_dsa.pub`
    [ ! -d /root/docker-temp ] && mkdir /root/docker-temp
    cd /root/docker-temp
    cat >/root/docker-temp/Dockerfile <<EOF
    #Dockerfile
    FROM centos6-ssh
    MAINTAINER feedao <feedao@163.com>
    EOF
    echo "RUN echo "$KEY_PUB" > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys " >>Dockerfile
    cd /root && cat /root/docker-temp/Dockerfile | docker build -t centos-newssh -
    

    脚本内容比较简单,就是生成新的秘钥和公钥

    ssh-keygen -q -N "" -t dsa -f /root/.ssh/id_dsa
     
    然后把公钥自动加到Docker容器中,这里是修改Dockerfile:
    echo "RUN echo "$KEY_PUB" > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys " >>Dockerfile
     
    最后创建新的镜像:
    cd /root && cat /root/docker-temp/Dockerfile | docker build -t centos-newssh -
     
    你可以把/root/docker-temp文件夹删除
    rm -rf /root/docker-temp
     
  • 相关阅读:
    NO12 useradd-passwd-uname-hostname命令-上传rz下载sz-批量部署- Linux用户相关操作
    NO11 SSH故障排查思路和netstat命令
    NO10 查看Linux操作系统-版本-内核-Linux分区
    NO9 Linux快捷键整理及最常用命令
    NO8 find结合sed查找替换企业案例多方法精讲&命令总结!
    NO7 利用三剑客awk-grep-sed-head-tail等7种方法实践
    python 对比图片相似度
    MonkeyRunner 实现自动点击截屏后与本地图库进行对比输出
    monkeyrunner对比屏幕局部图像.getSubImage()
    锤子便签的 monkeyrunner 测试脚本(转)
  • 原文地址:https://www.cnblogs.com/zhengah/p/4933700.html
Copyright © 2020-2023  润新知