首页 专题 文章 代码 归档
Docker Machine
2020.03.20 08:38 2020.03.20 08:38

1. 介绍

Docker Machine 是Docker官方编排项目之一,使用go语言编写的,使用不同引擎在多种平台上快速的安装Docker环境,开源地址: https://github.com/docker/machine

Docker Machine 是一个工具,它允许你在虚拟宿主机上安装Docker,并使用docker-machine命令管理这个宿主机,可以使用Docker Machine在本地的MAC或者windows box、公司网络,数据中心或者AWS这样的云提供商上创建docker。

使用docker-machine命令,可以启动、审查、停止、重启托管的docker 也可以升级Docker客户端和守护程序并配置docker客户端和宿主机通信。

Docker Machine 也可以集中管理所以得docker主机。

2. 为什么使用Docker Machine

Docker Machine 使你能够在各种 Linux 上配置多个远程 Docker 宿主机。

此外,Machine 允许你在较早的 Mac 或 Windows 系统上运行 Docker,如上一主题所述。

Docker Machine 有这两个广泛的用例:

  • 我有一个较旧的桌面系统,并希望在 Mac 或 Windows 上运行 Docker
  • 我想在远程系统上配置 Docker 宿主机

3. Docker和Docker Machine

当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker 守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run <image>、docker ps 来列出正在运行的容器、docker images 来列出镜像,等等。

Docker Machine 是一个用于配置和管理你的宿主机(上面具有 Docker Engine 的主机)的工具。通常,你在你的本地系统上安装 Docker Machine。Docker Machine有自己的命令行客户端 docker-machine 和 Docker Engine 客户端 docker。你可以使用 Machine 在一个或多个虚拟系统上安装 Docker Engine。

这些虚拟系统可以是本地的(就像你在 Mac 或 Windows 上使用 Machine 在 VirtualBox 中安装和运行 Docker Engine 一样)或远程的(就像你使用 Machine 在云提供商上 provision Dockerized 宿主机一样)。Dockerized 宿主机本身可以认为是,且有时就称为,被管理的“machines”。

4. 安装

官网文档:https://docs.docker.com/machine/install-machine/

所有的前提是已经在机器上安装了Docker

4.1. MacOS

$ base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine

4.2. Linux

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
  sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
  chmod +x /usr/local/bin/docker-machine

4.3. WIndows

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  mkdir -p "$HOME/bin" &&
  curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" &&
  chmod +x "$HOME/bin/docker-machine.exe"

上面的命令建议在Git Bash等类Linux终端上运行,因为此类工具才支持一些Linux命令,如chmod

5. 使用

5.1. 列出

docker-machine ls

5.2. 创建

创建一台名为 test 的机器。

docker-machine create --driver virtualbox test

注意,你首先需要在你的机器上安装virtualbox驱动,不然是不能正常运行的;

vmware驱动,请看:https://github.com/pecigonzalo/docker-machine-vmwareworkstation/releases/

5.3. 查看ip

docker-machine ip test

5.4. 停止机器

docker-machine stop test

5.5. 启动机器

docker-machine start test

5.6. 进入机器

docker-machine ssh test

5.7. docker-machine 命令参数

  • config:查看当前激活状态 Docker 主机的连接信息。
  • creat:创建 Docker 主机
  • env:显示连接到某个主机需要的环境变量
  • inspect: 以 json 格式输出指定Docker的详细信息
  • ip: 获取指定 Docker 主机的地址
  • kill: 直接杀死指定的 Docker 主机
  • ls: 列出所有的管理主机
  • 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 版本
  • help: 显示帮助信息

本文参考:

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

https://docs.docker.com/machine/install-machine/

https://www.cnblogs.com/stulzq/p/9064828.html

本节阅读完毕! (分享
二维码图片 扫描关注我们哟