天天看點

Docker 之 Docker Machine

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 之 Docker Machine

如果你主要在不符合新的 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 之 Docker Machine

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 &lt;image&gt;</code>、<code>docker ps</code> 來列出正在運作的容器、<code>docker images</code>來列出鏡像,等等。

Docker 之 Docker Machine

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 之 Docker Machine

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