Docker三剑客之Docker Machine


负责使用Docker的第一步,在多种平台上快速安装Docker环境。让用户可以在很短时间内搭建一套Docker主机集群

简介

Machine负责对Docker主机本身进行管理

Machine项目由Go语言编写,用户可以在本地任意指定被Machine管理的Docker主机,并对其进行操作

功能:

  1. 在指定节点安装Docker引擎,配置其为Docker主机

  2. 集中管理所有Docker主机

Machine连接不同类型的节点是通过不同的驱动制定的

安装Machine

Docker Machine支持多平台

Linux平台安装

推荐从官方Release库直接下载编译好的二进制文件即可

1
2
3
4
5
6
curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-Linux-x86_64 > machine.zip && \
unzip machine.zip && \
rm machine.zip && \
mv -f docker-machine* /usr/local/bin

chmod +x /usr/local/bin/docker-machine*

验证安装

1
docker-machine -v

Windows平台安装

首先安装git-bash

git-bash中,仍然通过下载二进制包方式安装Docker Machine

1
2
3
4
5
if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \
curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-Linux-x86_64 > machine.zip && \
unzip machine.zip && \
rm machine.zip && \
mv -f docker-machine* "$HOME/bin"

使用Machine

Docker Machine通过多种后端驱动来管理不同的资源,包括虚拟机,本地主机和云平台等

通过-d选项可以选择支持的驱动类型

虚拟化平台

可以通过virtualbox驱动支持本地(需安装virtualbox)启动一个虚拟机并配置为Docker主机

1
docker-machine create --driver=virtualbox vbox-instance

这将启动一个全新的虚拟机,并安装Docker引擎

支持Hyper-V虚拟化平台

本地主机

要求本地主机安装操作系统和SSH服务

且确保本地主机可以通过user账号的key直接通过ssh连到目标主机

使用generic类型的驱动,注册一台Docker主机,命名为test

1
docker-machine create -d generic --generic-ip-address=目标IP --generic-ssh-user=user test

Machine通过SSH连接到指定节点,并在上面安装Docker引擎

通过docker-machine ls命令查看注册到本地管理列表中的Docker主机

云平台驱动


Machine命令

格式:docker-machine <command>

active

格式:docker-machine active [arg...]

查看当前激活状态的Docker主机

激活状态意味着当前machine主机的DOCKER_HOST环境变量指向该主机

config

格式:docker-machine config [OPTIONS] [tag...]

查看到激活Docker主机的连接信息

create

格式:docker-machine create [OPTIONS] [tag...]

创建一个Docker主机

参数:

  1. --driver,-d "none":指定驱动类型

  2. --engine-install-url "https://get.docker.com":配置Docker主机时的安装URL

  3. --engine-opt option:以键值对格式指定所创建Docker引擎的参数

  4. --engine-insecure-registry option:以键值对格式指定所创建Docker引擎允许访问不支持认证的注册仓库服务

  5. --engine-registry-mirror option:指定注册仓库镜像

  6. --engine-label option:为所创建的Docker引擎添加标签

  7. --engine-storage-driver:存储后端驱动类型

  8. --engine-env option:指定环境变量

  9. --swarm:指定使用Swarm

  10. --swarm-image "swarm:latest":使用Swarm时采用的镜像

  11. --swarm-master:配置机器作为Swarm集群的master节点

  12. --swarm-discoverySwarm集群的服务发现机制参数

  13. --swarm-strategy "spread"Swarm默认调度策略

  14. --swarm-opt option:任意传递给Swarm的参数

  15. --swarm-host "tcp://0.0.0.0:3376":指定地址将监听Swarm master节点请求

  16. --swarm-addr:从指定地址发送广播加入Swarm集群服务

  17. --swarm-experimental

env

格式:docker-machine env [OPTIONS] [tag...]

显示连接到某个主机需要的环境变量

inspect

格式:docker-machine inspect [OPTIONS] [tag...]

json格式输出指定Docker主机的详细信息

ip

格式:docker-machine ip [tag...]

获取指定Docker主机地址

kill

格式:docker-machine kill [tag...]

直接杀死指定Docker主机

指定Docker主机会强行停止

ls

格式:docker-machine ls [OPTIONS] [tag...]

列出所有管理的主机

参数:

  1. --quiet,-q:减少无关输出信息

  2. --filter option:只输出符合过滤条件的主机,支持多条此参数;支持正则,驱动类型,Swarm管理节点名称,状态等

---------------The End---------------
0%