docker machine 是 docker 官方編排(orchestration)項目之一,負責在多種平台上快速安裝 docker 環境。
docker machine 是一個工具,它允許你在虛拟主控端上安裝 docker engine ,并使用 docker-machine 指令管理這些主控端。你可以使用 machine 在你本地的 mac 或 windows box、公司網絡、資料中心、或像 aws 或 digital ocean 這樣的雲提供商上建立 docker 主控端。
使用 docker-machine 指令,你可以啟動、審查、停止和重新啟動托管的主控端、更新 docker 用戶端和守護程式、并配置 docker 用戶端與你的主控端通信。
docker machine 使你能夠在各種 linux 上配置多個遠端 docker 主控端。 此外,machine 允許你在較早的 mac 或 windows 系統上運作 docker,如上一主題所述。 docker machine 有這兩個廣泛的用例。
我有一個較舊的桌面系統,并希望在 mac 或 windows 上運作 docker
如果你主要在不符合新的 docker for mac 和 docker for windows 應用程式的舊 mac 或 windows 筆記本電腦或桌上型電腦上工作,則需要 docker machine 來在本地“運作docker”(即docker engine)。在 mac 或 windows box 中使用 docker toolbox 安裝程式安裝 docker machine 将為 docker engine 配置一個本地的虛拟機,使你能夠連接配接它、并運作 docker 指令。
我想在遠端系統上配置 docker 主控端
docker engine linux 系統上原生地運作。如果你有一個 linux 作為你的主系統,并且想要運作 docker 指令,所有你需要做的就是下載下傳并安裝 docker engine 。然而,如果你想要在網絡上、雲中甚至本地配置多個 docker 主控端有一個有效的方式,你需要 docker machine。
無論你的主系統是 mac、windows 還是 linux,你都可以在其上安裝 docker machine,并使用 docker-machine 指令來配置和管理大量的 docker 主控端。它會自動建立主控端、在其上安裝 docker engine 、然後配置 docker 用戶端。每個被管理的主控端(“machine”)是 docker 主控端和配置好的用戶端的結合。
當人們說“docker”時,他們通常是指 docker engine,它是一個用戶端 - 伺服器應用程式,由 docker 守護程序、一個rest api指定與守護程序互動的接口、和一個指令行接口(cli)與守護程序通信(通過封裝rest api)。docker engine 從 cli 中接受docker 指令,例如<code>docker run <image></code>、<code>docker ps</code> 來列出正在運作的容器、<code>docker images</code>來列出鏡像,等等。
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”。
docker machine 安裝很簡單
檢視是否存在可用的主機
建立一個主機:
這個指令會下載下傳 boot2docker,基于 boot2docker 建立一個虛拟主機。boot2docker 是一個輕量級的 linux 發行版,基于專門為運作 docker 容器而設計的 tiny core linux 系統,完全從 ram 運作,45mb左右,啟動時間約5s。
再次檢視服務清單
發現已經存在一個虛拟主機
建立主機成功後,可以通過 env 指令來讓後續操作對象都是目标主機。
相當于配置了一個環境變量 default,後續根據提示在指令行輸入指令之後就可以操作 default 主機。
可以通過 ssh 登入到主機
連接配接到主機之後你就可以在其上使用 docker 了,退出虛拟機使用指令:<code>exit </code>
更多參數請使用 docker-machine –help 指令檢視。
docker machine 最主要有兩個作用:
使用 docker machine 友善在不同的環境中使用 docker ,比如:win/mac
使用 docker machine 友善在雲環境下批量部署 docker環境,比如:私有雲,公有雲批量安裝docker環境
virtualbox 安裝很麻煩,我使用的虛拟機和雲主機來做實驗均沒有安裝成功,最後使用的是 docker 官方提供的 windows 安裝包來完成的 virtualbox 相關操作。附 virtualbox 官網:https://www.virtualbox.org/wiki/downloads