Docker三剑客之Machine

Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。

这里将介绍 Machine 项目情况以及安装和使用。

简介

Docker Machine 项目基于 Go 语言实现,目前在 Github 上进行维护。

安装

Docker Machine 可以在多种操作系统平台上安装,包括 Linux、Mac OS,以及 Windows。

Linux/Mac OS

在 Linux/Mac OS 上的安装十分简单,推荐从 官方 Release 库 直接下载编译好的二进制文件即可。

例如,在 Linux 64 位系统上直接下载对应的二进制包。

1
2
$ sudo curl -L https://github.com/docker/machine/releases/download/v0.3.1-rc1/docker-machine_linux-amd64 > /usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine

完成后,查看版本信息,验证运行正常。

1
docker-machine -v

Windows

Windows 下面要复杂一些,首先需要安装 msysgit
msysgit 是 Windows 下的 git 客户端软件包,会提供类似 Linux 下的一些基本的工具,例如 ssh 等。

安装之后,启动 msysgit 的命令行界面,仍然通过下载二进制包进行安装,需要下载 docker 客户端和 docker-machine。

1
2
curl -L https://get.docker.com/builds/Windows/x86_64/docker-latest.exe > /bin/docker
curl -L https://github.com/docker/machine/releases/download/v0.3.1-rc1/docker-machine_windows-amd64.exe > /bin/docker-machine

使用

Docker Machine 支持多种后端驱动,包括虚拟机、本地主机和云平台等。

本地主机实例

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

使用 generic 类型的驱动,创建一台 Docker 主机,命名为 test。

1
docker-machine create -d generic --generic-ip-address=10.0.100.101 --generic-ssh-user=user test

创建主机成功后,可以通过 env 命令来让后续操作对象都是目标主机。

1
docker-machine env test

支持驱动

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

  • amazonec2
  • azure
  • digitalocean
  • exoscale
  • generic
  • google
  • none
  • openstack
  • rackspace
  • softlayer
  • virtualbox
  • vmwarevcloudair
  • vmwarevsphere

操作命令

  • active 查看活跃的 Docker 主机
  • config 输出连接的配置信息
  • create 创建一个 Docker 主机
  • env 显示连接到某个主机需要的环境变量
  • inspect 输出主机更多信息
  • ip 获取主机地址
  • kill 停止某个主机
  • ls 列出所有管理的主机
  • regenerate-certs 为某个主机重新生成 TLS 认证信息
  • restart 重启主机
  • rm 删除某台主机
  • ssh SSH 到主机上执行命令
  • scp 在主机之间复制文件
  • start 启动一个主机
  • stop 停止一个主机
  • upgrade 更新主机 Docker 版本为最新
  • url 获取主机的 URL
  • help, h 输出帮助信