美文网首页程序员Docker容器
docker容器技术学习笔记(8、Docker Machine)

docker容器技术学习笔记(8、Docker Machine)

作者: 阳一yayi | 来源:发表于2018-08-30 15:35 被阅读16次

    管理多个docker host主机

    用 Docker Machine 可以批量安装和配置 docker host,这个 host 可以是本地的虚拟机、物理机,也可以是公有云中的云主机。

    Docker Machine 支持在不同的环境下安装配置 docker host,包括:
    1、常规 Linux 操作系统
    2、虚拟化平台 - VirtualBox、VMWare、Hyper-V
    3、OpenStack
    4、公有云 - Amazon Web Services、Microsoft Azure、Google Compute Engine、Digital Ocean 等

    Docker Machine 为这些环境起了一个统一的名字:provider。对于某个特定的 provider,Docker Machine 使用相应的 driver 安装和配置 docker host,如下图所示:


    实验环境

    • 操作系统:ubuntu
    • ip:10.10.8.125、10.10.8.126、10.10.8.127
    • 10.10.8.125 上安装 Docker Machine,然后通过 docker-machine 命令在其他两个 host 上部署 docker。

    安装 Docker Machine

    curl -L https://github.com/docker/machine/releases/download/v0.9.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
    

    创建 Machine

    “创建 Machine” 指的就是在 host 上安装和部署 docker。

    创建 machine 要求能够无密码登录远程主机,所以需要先通过如下命令将 ssh key 拷贝到10.10.8.126。

    执行 docker-machine create 命令创建 host1:

    docker-machine create --driver generic --generic-ip-address=10.10.8.126 host1
    因为我们是往普通的 Linux 中部署 docker,所以使用 `generic` driver,其他 driver 可以参考文档  https://docs.docker.com/machine/drivers/。
    --generic-ip-address 指定目标系统的 IP,并命名为 host1
    

    执行 docker-machine ls可以看到host1。使用同样的方法创建 host2:
    docker-machine create --driver generic --generic-ip-address=10.10.8.107 host2

    创建成功后 docker-machine ls 可以看到 host1 和 host2 都已经就绪:

    # docker-machine ls
    NAME    ACTIVE   DRIVER    STATE     URL                      SWARM   DOCKER        ERRORS
    host1   -        generic   Running   tcp://10.10.8.126:2376           v18.06.1-ce   
    host2   -        generic   Running   tcp://10.10.8.127:2376           v18.06.1-ce 
    

    管理machine

    用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境。除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理。其中最常用的就是无需登录到 machine 就能执行 docker 相关操作。

    执行远程 docker 命令我们需要通过 -H 指定目标主机的连接字符串,比如:
    docker -H tcp://10.10.8.126:2376 ps

    Docker Machine 则让这个过程更简单。docker-machine env host1显示访问 host1 需要的所有环境变量。

    根据提示,执行 eval $(docker-machine env host1)可以切换到host1

    个有用的 docker-machine 子命令:

    docker-machine upgrade 更新 machine 的 docker 到最新版本,可以批量执行;
    docker-machine config 查看 machine 的 docker daemon 配置;
    stop/start/restart 是对 machine 的操作系统操作,而 不是 stop/start/restart docker daemon。
    docker-machine scp 可以在不同 machine 之间拷贝文件。
    

    相关文章

      网友评论

        本文标题:docker容器技术学习笔记(8、Docker Machine)

        本文链接:https://www.haomeiwen.com/subject/rmahwftx.html