Docker Machine 是一種可以讓您在虛擬主機(jī)上安裝 Docker 的工具,并可以使用 docker-machine 命令來管理主機(jī)。
Docker Machine 也可以集中管理所有的 docker 主機(jī),比如快速的給 100 臺(tái)服務(wù)器安裝上 docker。
Docker Machine 管理的虛擬主機(jī)可以是機(jī)上的,也可以是云供應(yīng)商,如阿里云,騰訊云,AWS,或 DigitalOcean。
使用 docker-machine 命令,您可以啟動(dòng),檢查,停止和重新啟動(dòng)托管主機(jī),也可以升級(jí) Docker 客戶端和守護(hù)程序,以及配置 Docker 客戶端與您的主機(jī)進(jìn)行通信。
安裝 Docker Machine 之前你需要先安裝 Docker。
Docker Machine 可以在多種平臺(tái)上安裝使用,包括 Linux 、MacOS 以及 windows。
$ 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
$ 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 平臺(tái),可以使用 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
本章通過 virtualbox 來介紹 docker-machine 的使用方法。其他云服務(wù)商操作與此基本一致。具體可以參考每家服務(wù)商的指導(dǎo)文檔。
可以看到目前只有這里默認(rèn)的 default 虛擬機(jī)。
$ docker-machine ls
創(chuàng)建一臺(tái)名為 test 的機(jī)器。
$ docker-machine create --driver virtualbox test
--driver:指定用來創(chuàng)建機(jī)器的驅(qū)動(dòng)類型,這里是 virtualbox。
$ docker-machine ip test
$ docker-machine stop test
$ docker-machine start test
$ docker-machine ssh test
docker-machine active:查看當(dāng)前激活狀態(tài)的 Docker 主機(jī)。
$ 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:查看當(dāng)前激活狀態(tài) Docker 主機(jī)的連接信息。
creat:創(chuàng)建 Docker 主機(jī)
env:顯示連接到某個(gè)主機(jī)需要的環(huán)境變量
inspect: 以 json 格式輸出指定Docker的詳細(xì)信息
ip: 獲取指定 Docker 主機(jī)的地址
kill: 直接殺死指定的 Docker 主機(jī)
ls: 列出所有的管理主機(jī)
provision: 重新配置指定主機(jī)
regenerate-certs: 為某個(gè)主機(jī)重新生成 TLS 信息
restart: 重啟指定的主機(jī)
rm: 刪除某臺(tái) Docker 主機(jī),對(duì)應(yīng)的虛擬機(jī)也會(huì)被刪除
ssh: 通過 SSH 連接到主機(jī)上,執(zhí)行命令
scp: 在 Docker 主機(jī)之間以及 Docker 主機(jī)和本地主機(jī)之間通過 scp 遠(yuǎn)程復(fù)制數(shù)據(jù)
mount: 使用 SSHFS 從計(jì)算機(jī)裝載或卸載目錄
start: 啟動(dòng)一個(gè)指定的 Docker 主機(jī),如果對(duì)象是個(gè)虛擬機(jī),該虛擬機(jī)將被啟動(dòng)
status: 獲取指定 Docker 主機(jī)的狀態(tài)(包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error)等
stop: 停止一個(gè)指定的 Docker 主機(jī)
upgrade: 將一個(gè)指定主機(jī)的 Docker 版本更新為最新
url: 獲取指定 Docker 主機(jī)的監(jiān)聽 URL
version: 顯示 Docker Machine 的版本或者主機(jī) Docker 版本
help: 顯示幫助信息