[Docker]1.VirtualBox中使用Docker Machine管理主機

大家好,今天我們學習在 VirtualBox 中使用 Docker Machine 來創建和管理 Docker 主機。Docker Machine 是一個可以幫助我們在電腦上、在雲端、在數據中心內創建 Docker 主機的應用。它爲根據用戶的配置和需求創建服務器並在其上安裝 Docker和客戶端提供了一個輕鬆的解決方案。這個 API 可以用於在本地主機、或數據中心的虛擬機、或雲端的實例提供 Docker 服務。Docker Machine 支持 Windows、OSX 和 Linux,並且是以一個獨立的二進制文件包形式安裝的。仍然使用(與現有 Docker 工具)相同的接口,我們就可以充分利用已經提供 Docker 基礎框架的生態系統。只要一個命令,用戶就能快速部署 Docker 容器。

在 VirtualBox 中使用 Docker Machine 管理主機

本文列出一些簡單的步驟用 Docker Machine 來部署 docker 容器。

1. 安裝 Docker Machine

Docker Machine 完美支持所有 Linux 操作系統。首先我們需要從 github 下載最新版本的 Docker Machine,本文使用 curl 作爲下載工具,Docker Machine 版本爲 0.2.0。

64 位操作系統

# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine

32 位操作系統

# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386 > /usr/local/bin/docker-machine

下載完成後,找到 /usr/local/bin 目錄下的 docker-machine 文件,讓其可以執行:

# chmod +x /usr/local/bin/docker-machine

確認是否成功安裝了 docker-machine,可以運行下面的命令,它會打印 Docker Machine 的版本信息:

# docker-machine -v

在 VirtualBox 中使用 Docker Machine 管理主機

運行下面的命令,安裝 Docker 客戶端,以便於在我們自己的電腦止運行 Docker 命令:

# curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker
# chmod +x /usr/local/bin/docker

2. 創建 VirtualBox 虛擬機

在 Linux 系統上安裝完 Docker Machine 後,接下來我們可以安裝 VirtualBox 虛擬機,運行下面的就可以了。--driver virtualbox選項表示我們要在 VirtualBox 的虛擬機裏面部署 docker,最後的參數“linux” 是虛擬機的名稱。這個命令會下載 boot2docker iso,它是個基於 Tiny Core Linux 的輕量級發行版,自帶 Docker 程序,然後docker-machine命令會創建一個 VirtualBox 虛擬機(LCTT譯註:當然,我們也可以選擇其他的虛擬機軟件)來運行這個 boot2docker 系統。

# docker-machine create --driver virtualbox linux

在 VirtualBox 中使用 Docker Machine 管理主機

測試下有沒有成功運行 VirtualBox 和 Docker,運行命令:

# docker-machine ls

在 VirtualBox 中使用 Docker Machine 管理主機

如果執行成功,我們可以看到在 ACTIVE 那列下面會出現一個星號“*”。

3. 設置環境變量

現在我們需要讓 docker 與 docker-machine 通信,運行docker-machine env <虛擬機名稱>來實現這個目的。

# eval "$(docker-machine env linux)"
# docker ps

這個命令會設置 TLS 認證的環境變量,每次重啓機器或者重新打開一個會話都需要執行一下這個命令,我們可以看到它的輸出內容:

# docker-machine env linux

export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/Users/<your username>/.docker/machine/machines/dev
export DOCKER_HOST=tcp://192.168.99.100:2376

4. 運行 Docker 容器

完成配置後我們就可以在 VirtualBox 上運行 docker 容器了。測試一下,我們可以運行虛擬機docker run busybox,並在裏面裏執行echo hello world命令,我們可以看到容器的輸出信息。

# docker run busybox echo hello world

在 VirtualBox 中使用 Docker Machine 管理主機

5. 拿到 Docker 主機的 IP

我們可以執行下面的命令獲取運行 Docker 的主機的 IP 地址。我們可以看到在 Docker 主機的 IP 地址上的任何暴露出來的端口。

# docker-machine ip

在 VirtualBox 中使用 Docker Machine 管理主機

6. 管理主機

現在我們可以隨心所欲地使用上述的 docker-machine 命令來不斷創建主機了。

當你使用完 docker 時,可以運行 docker-machine stop 來停止所有主機,如果想開啓所有主機,運行 docker-machine start

# docker-machine stop
# docker-machine start

你也可以只停止或開啓一臺主機:

$ docker-machine stop linux
$ docker-machine start linux

總結

最後,我們使用 Docker Machine 成功在 VirtualBox 上創建並管理一臺 Docker 主機。Docker Machine 確實能讓用戶快速地在不同的平臺上部署 Docker 主機,就像我們這裏部署在 VirtualBox 上一樣。這個 virtualbox 驅動可以在本地機器上使用,也可以在數據中心的虛擬機上使用。Docker Machine 驅動除了支持本地的 VirtualBox 之外,還支持遠端的 Digital Ocean、AWS、Azure、VMware 以及其它基礎設施。

發佈了23 篇原創文章 · 獲贊 40 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章