• Docker启动一个Centos镜像,在docker中安装ifconfig和ssh


    执行docker search centos 现在最流行的Linux嘛。查了下,排名第一的(STARS最多1882)官方版,就是你了

    果断拿下, docker pull centos,看网速了静等拿下

    其实我在一开始的Docker Quicky Start里面也pull过,但是不知道为什么失败了,换了SecureCRT顺利获取,不知道为什么。反正只是需要一个环境而已

    好啦,看看成果,这下有镜像了,输入docker images

    接下来启动一个呗, docker run -d c8a /bin/echo 'Hello World'

    成功打出了一串乱码,想要看的话必须用docker logs来看,看我少打了参数docker很贴心提醒我了

    但是logs要一个Container ID,那是个啥?打入docker ps查看一下

    一片空白,这是怎么回事呢。。明明已经有了images了,run之后不是应该生成Container的嘛。

    重新输入一段抄来的循环执行的命令之后再看

    有了,写了一个后台一直会运行的命令,现在再来看看log

    看到一堆hello world,好吧,这样我们就算大体成功了。

    但是,我原本要一堆Container来部署集群,不能每个都运行一个二逼命令吧。

    仔细查看了一下命令列表,爷爷的,原来docker ps 只是显示当前运行的Container。让我们来运行一下docker ps -a

    看,以前的都在,我们就能在指定的Container上进行操作了哈哈哈。。

    #运行命令

     
    1. #切换到docker内部
    2. docker-machine ssh default
    3. sudo -i
    4. #启动容器
    5. docker run -d -i -t <imageID> /bin/bash  

    这样就能启动一个一直停留在后台运行的Centos了。如果少了/bin/bash的话,Docker会生成一个Container但是马上就停止了,不会一致运行即使有了-d参数。

    然后我们可以进入我们这个Centos

    1. docker attach <ContainerID>  

    进入Centos后,发现竟然没有ifconfig和ssh,网上例子很多参照着来

    1. ifconfig的安装,执行命令
       
      1. yum search ifconfig  
     
     
    2. 安装ifconfig
    1. yum install -y net-tools.x86_64  
     
     
    好了,有了它终于可以知道自己的IP了和网络。现在还需要一个ssh让我们能方便的访问Centos




    接下来只要启动就可以了
    1. yum install -y openssh-server
    2. #使用ssh-keygen命令来手动生成
    3. ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
      ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
      ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N ''
      sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
      sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
    4. /usr/sbin/sshd -D  

    接下来就是常用的命令了,将端口映射到宿主机,我这里就是VM分配的linux系统。
    #退出,但不停止容器
    Ctrl+P+Q
    #回到Docker下面,停止容器
    docker stop <容器ID>
    #提交当前容器到镜像
    docker commit <容器ID> <NAME/VERSION>
    #启动新容器,并且进行端口映射
    docker run -itd -p 50001:22 <刚才提交的镜像ID>  /bin/bash

    好了,这样我们在windows下利用ssh工具访问宿主机的IP端口就可以访问到容器了
    我这里就是192.168.99.100:50001
  • 相关阅读:
    jquery.validate.unobtrusive的使用
    企业库判断数据库连接类型
    win10下安装LoadRunner12汉化包
    win10安装LoadRunner时,安装.net framwork组件报0x800F081F错误 解决办法
    wrk性能测试(详解)
    wrk压测报错 LF character expected at 1:111
    Linux scp命令详解(服务器之间复制文件或目录)
    Linux cat命令详解(连接文件并打印到标准输出设备上)
    性能测试流程
    ‘mysql’不是内部或外部命令,也不是可运行的程序--解决方法
  • 原文地址:https://www.cnblogs.com/linuxandy/p/10532775.html
Copyright © 2020-2023  润新知