Docker Machine

簡介

Docker Machine 是一種可以讓您在虛擬主機上安裝 Docker 的工具,並可以使用 docker-machine 命令來管理主機。

Docker Machine 也可以集中管理所有的 docker 主機,比如快速的給 100 台服務器安裝上 docker。

Docker Machine 管理的虛擬主機可以是機上的,也可以是雲供應商,如阿裏雲,騰訊雲,AWS,或 DigitalOcean。

使用 docker-machine 命令,您可以啟動,檢查,停止和重新啟動托管主機,也可以升級 Docker 客戶端和守護程序,以及配置 Docker 客戶端與您的主機進行通信。


安裝

安裝 Docker Machine 之前你需要先安裝 Docker。

Docker Machine 可以在多種平台上安裝使用,包括 Linux 、MacOS 以及 windows。

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

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

Windows 安裝命令

如果你是 Windows 平台,可以使用 Git BASH,並輸入以下命令:

$ 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"

查看是否安裝成功:

$ docker-machine version
docker-machine version 0.16.0, build 9371605

注意:各版本更新日誌裏麵也有安裝說明:https://github.com/docker/machine/releases


使用

本章通過 virtualbox 來介紹 docker-machine 的使用方法。其他雲服務商操作與此基本一致。具體可以參考每家服務商的指導文檔。

1、列出可用的機器

可以看到目前隻有這裏默認的 default 虛擬機。

$ docker-machine ls

2、創建機器

創建一台名為 test 的機器。

$ docker-machine create --driver virtualbox test
  • --driver:指定用來創建機器的驅動類型,這裏是 virtualbox。

3、查看機器的 ip

$ docker-machine ip test

4、停止機器

$ docker-machine stop test

5、啟動機器

$ docker-machine start test

6、進入機器

$ docker-machine ssh test

docker-machine 命令參數說明

  • docker-machine active:查看當前激活狀態的 Docker 主機。

    $ docker-machine ls
    
    NAME      ACTIVE   DRIVER         STATE     URL
    dev       -        virtualbox     Running   tcp://192.168.99.103:2376
    staging   *        digitalocean   Running   tcp://203.0.113.81:2376
    
    $ echo $DOCKER_HOST
    tcp://203.0.113.81:2376
    
    $ docker-machine active
    staging
  • config:查看當前激活狀態 Docker 主機的連接信息。
  • create:創建 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: 顯示幫助信息