负责使用Docker的第一步,在多种平台上快速安装Docker环境。让用户可以在很短时间内搭建一套Docker主机集群
简介
Machine负责对Docker主机本身进行管理
Machine项目由Go语言编写,用户可以在本地任意指定被Machine管理的Docker主机,并对其进行操作
功能:
在指定节点安装
Docker引擎,配置其为Docker主机集中管理所有
Docker主机
Machine连接不同类型的节点是通过不同的驱动制定的
安装Machine
Docker Machine支持多平台
Linux平台安装
推荐从官方Release库直接下载编译好的二进制文件即可
1 | curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-Linux-x86_64 > machine.zip && \ |
验证安装
1 | docker-machine -v |
Windows平台安装
首先安装git-bash
git-bash中,仍然通过下载二进制包方式安装Docker Machine
1 | if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \ |
使用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主机
参数:
--driver,-d "none":指定驱动类型--engine-install-url "https://get.docker.com":配置Docker主机时的安装URL--engine-opt option:以键值对格式指定所创建Docker引擎的参数--engine-insecure-registry option:以键值对格式指定所创建Docker引擎允许访问不支持认证的注册仓库服务--engine-registry-mirror option:指定注册仓库镜像--engine-label option:为所创建的Docker引擎添加标签--engine-storage-driver:存储后端驱动类型--engine-env option:指定环境变量--swarm:指定使用Swarm--swarm-image "swarm:latest":使用Swarm时采用的镜像--swarm-master:配置机器作为Swarm集群的master节点--swarm-discovery:Swarm集群的服务发现机制参数--swarm-strategy "spread":Swarm默认调度策略--swarm-opt option:任意传递给Swarm的参数--swarm-host "tcp://0.0.0.0:3376":指定地址将监听Swarm master节点请求--swarm-addr:从指定地址发送广播加入Swarm集群服务--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...]
列出所有管理的主机
参数:
--quiet,-q:减少无关输出信息--filter option:只输出符合过滤条件的主机,支持多条此参数;支持正则,驱动类型,Swarm管理节点名称,状态等