• docker-machine常用


    什么是Docker Machine?

    Docker Machine是一个远程管理工具;
    Docker Machine帮助我们在远程的主机上安装和配置Docker
    Docker Machine帮助我们在远程的虚拟机(VMWare、VirtualBox、KVM等)上安装和配置Docker
    项目地址:https://github.com/docker/machine
    参考:https://blog.csdn.net/sl963216757/article/details/118344600
    image.png


    Docker Machine默认支持的驱动

    image.png


    安装kvm驱动

    # 下载docker-machine-driver-kvm
    sudo curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm -o /usr/local/bin/docker-machine-driver-kvm 
    
    # 赋予docker-machine-driver-kvm可执行权限
    sudo chmod +x /usr/local/bin/docker-machine-driver-kvm
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装和配置Docker Machine


    环境准备

    各主机之间做好ssh免密

    • node1
    • node2

    node1安装Docker

    https://blog.csdn.net/omaidb/article/details/121683661

    # 安装yum-utils
    yum install -y yum-utils
    
    # 卸载旧版docker-CE
    yum -y remove docker \
        docker-ce \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
    # 添加docker-ce源 https://docs.docker.com/engine/install/centos/
    ## docker-ce国内源--aliyun
    # yum-config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    ## docker-ce官方源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 查看repolist中docker-ce仓库是否添加成功
    yum repolist
    
    # 刷新yum缓存
    yum clean all && yum makecache
    
    # 安装docker-ce
    yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    node1安装Docker Machine

    https://github.com/docker/machine

    # 下载Docker Machine
    curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
    
    # 赋予可执行权限
    chmod +x /tmp/docker-machine
    
    # 复制到可执行目录
    sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
    
    # 查看docker-machine版本
    docker-machine version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    为Docker Machine安装自动补全

    安装来源:https://github.com/docker/machine/tree/master/contrib/completion/bash

    • 安装bash脚本到/etc/bash_completion.d/
    # 下载docker-machine-prompt.bash
    wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -P /etc/profile.d/
    
    # 下载docker-machine-wrapper.bash
    wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -P /etc/profile.d/
    
    # 下载docker-machine.bash
    wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -P /etc/profile.d/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    为Docker Machine准备boot2docker.iso镜像

    boot2docker.iso项目地址:https://github.com/boot2docker

    # 下载boot2docker.iso
    wget -c https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso  -P $HOME/.docker/machine/cache/
    
    • 1
    • 2

    image.png


    为node2创建machine主机

    node1上执行创建node2_machine主机的命令

    # 创建machine主机
    ## --driver:要在目标主机创建docker的驱动程序
    ## --generic-ip-address:目标地址
    ## :创建的主机的名称
    # docker-machine create 主机名
    docker-machine create --driver generic --generic-ip-address 172.25.2.2 server2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    管理远程docker主机

    # 加载docker-machine变量
    ## 会加载docker的远程主机变量,用于管理远程docker
    docker-machine env
    docker-machine env 远程docker主机名
    
    # 取消docker-machine变量
    ## 将docker引擎指向本地docker
    docker-machine env -u
    
    # 查看当前指向的docker引擎
    echo $DOCKER_HOST
    ## 回显
    tcp://203.0.113.81:2376
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    常见用法

    https://www.runoob.com/docker/docker-machine.html

    参数解释
    config查看当前激活状态 Docker 主机的连接信息
    docker-machine config
    create创建 Docker 主机
    env显示连接到某个主机需要的环境变量
    docker-machine env
    inspect以 json 格式输出指定Docker的详细信息
    docker-machine inspect
    ip获取指定 Docker 主机的地址
    示例: 查看主机的IP
    docker-machine ip
    kill直接杀死指定的 Docker 主机
    ls列出所有的管理主机
    active获取当前活动的 Docker Machine 主机
    示例: 显示当前的活动主机
    docker-machine active
    provision重新配置指定主机
    regenerate-certs为某个主机重新生成 TLS 信息
    restart重启指定的主机
    rm删除某台 Docker 主机,对应的虚拟机也会被删除
    ssh通过 SSH 连接到主机上,执行命令
    scp在 Docker 主机之间以及 Docker 主机和本地主机之间通过 scp 远程复制数据
    mount使用 SSHFS 从计算机装载或卸载目录
    start启动一个指定的 Docker 主机,如果对象是个虚拟机,该虚拟机将被启动
    status获取指定 Docker 主机的状态(包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error)等
    stop停止一个指定的 Docker 主机
    upgrade将一个指定主机的 Docker 版本更新为最新
    url获取指定 Docker 主机的监听 URL
    version显示 Docker Machine 的版本或者主机 Docker 版本
    # 重新配置现在主机
    docker-machine provision
    
    # 为主机重新生成证书
    docker-machine regenerate-certs
    
    # 升级主机的docker服务到最新版本
    docker-machine upgrade 
    
    # 查看docker-machine版本
    docker-machine version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    列出可用的机器

    # 列出所有可用的机器
    docker-machine ls
    
    • 1
    • 2

    image.png


    查看主机状态

    # 查看主机的状态
    docker-machine status
    
    • 1
    • 2

    创建机器

    # 创建一台名为 test 的机器
    ## --driver:指定用来创建机器的驱动类型,这里是 virtualbox
    docker-machine create --driver virtualbox test
    
    • 1
    • 2
    • 3

    查看机器的ip

    # 查看机器的ip
    docker-machine ip test
    
    • 1
    • 2

    image.png


    启动机器

    # 启动机器
    docker-machine start test
    
    • 1
    • 2

    image.png


    停止机器

    # 停止机器
    docker-machine stop test
    
    • 1
    • 2

    image.png


    重启机器

    # 重启主机
    docker-machine restart vm1
    
    • 1
    • 2

    强制关闭机器

    # 强制关闭一个主机
    docker-machine kill vm1
    
    • 1
    • 2

    删除机器

    # 删除主机
    docker-machine rm vm1
    
    • 1
    • 2

    进入机器

    # # 以SSH的方式连接到主机上
    docker-machine ssh vm1
    
    • 1
    • 2

    复制文件到主机

    
    # 从本地主机复制文件到远程 Docker Machine 主机
    docker-machine scp <本地文件路径> <远程主机名称>:<目标路径>
    
    # 从远程 Docker Machine 主机复制文件到本地主机
    docker-machine scp <远程主机名称>:<远程文件路径> <本地目标路径>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Python GIL及其釋放/獲取函數
    车载ECU嵌入式设备的诊断测试 – 读和写
    数据防泄密软件排行榜
    RabbitMQ二、RabbitMQ的六种模式
    ISE的FPGA程序加载与固化——Omapl138/TMS320C6748+FPGA核心板
    操作系统备考学习 day7 (2.3.4 ~ 2.3.5)
    用ARM进行汇编语言编程(2)算数指令,CPSR寄存器与逻辑运算
    HTML5+JavaScript绘制彩虹和云朵
    C#下WinForm多语种切换
    shell-运算符
  • 原文地址:https://blog.csdn.net/omaidb/article/details/133807589