VirtualBox中使用Docker Machine來(lái)管理Docker主機(jī)
大家好,今天我們學(xué)習(xí)在 VirtualBox 中使用 Docker Machine 來(lái)創(chuàng)建和管理 Docker 主機(jī)。Docker Machine 是一個(gè)可以幫助我們?cè)陔娔X上、在云端、在數(shù)據(jù)中心內(nèi)創(chuàng)建 Docker 主機(jī)的應(yīng)用。它為根據(jù)用戶(hù)的配置和需求創(chuàng)建服務(wù)器并在其上安裝 Docker和客戶(hù)端提供了一個(gè)輕松的解決方案。這個(gè) API 可以用于在本地主機(jī)、或數(shù)據(jù)中心的虛擬機(jī)、或云端的實(shí)例提供 Docker 服務(wù)。Docker Machine 支持 Windows、OSX 和 Linux,并且是以一個(gè)獨(dú)立的二進(jìn)制文件包形式安裝的。仍然使用(與現(xiàn)有 Docker 工具)相同的接口,我們就可以充分利用已經(jīng)提供 Docker 基礎(chǔ)框架的生態(tài)系統(tǒng)。只要一個(gè)命令,用戶(hù)就能快速部署 Docker 容器。
本文列出一些簡(jiǎn)單的步驟用 Docker Machine 來(lái)部署 docker 容器。
1. 安裝 Docker Machine
Docker Machine 完美支持所有 Linux 操作系統(tǒng)。首先我們需要從 github 下載最新版本的 Docker Machine,本文使用 curl 作為下載工具,Docker Machine 版本為 0.2.0。
64 位操作系統(tǒng)
# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine
32 位操作系統(tǒng)
# 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 文件,讓其可以執(zhí)行:
# chmod +x /usr/local/bin/docker-machine
確認(rèn)是否成功安裝了 docker-machine,可以運(yùn)行下面的命令,它會(huì)打印 Docker Machine 的版本信息:
# docker-machine -v

運(yùn)行下面的命令,安裝 Docker 客戶(hù)端,以便于在我們自己的電腦止運(yùn)行 Docker 命令:
# curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker
# chmod +x /usr/local/bin/docker
2. 創(chuàng)建 VirtualBox 虛擬機(jī)
在 Linux 系統(tǒng)上安裝完 Docker Machine 后,接下來(lái)我們可以安裝 VirtualBox 虛擬機(jī),運(yùn)行下面的就可以了。--driver virtualbox 選項(xiàng)表示我們要在 VirtualBox 的虛擬機(jī)里面部署 docker,最后的參數(shù)“linux” 是虛擬機(jī)的名稱(chēng)。這個(gè)命令會(huì)下載 boot2docker iso,它是個(gè)基于 Tiny Core Linux 的輕量級(jí)發(fā)行版,自帶 Docker 程序,然后 docker-machine 命令會(huì)創(chuàng)建一個(gè) VirtualBox 虛擬機(jī)(LCTT譯注:當(dāng)然,我們也可以選擇其他的虛擬機(jī)軟件)來(lái)運(yùn)行這個(gè) boot2docker 系統(tǒng)。
# docker-machine create --driver virtualbox linux

測(cè)試下有沒(méi)有成功運(yùn)行 VirtualBox 和 Docker,運(yùn)行命令:
# docker-machine ls

如果執(zhí)行成功,我們可以看到在 ACTIVE 那列下面會(huì)出現(xiàn)一個(gè)星號(hào)“*”。
3. 設(shè)置環(huán)境變量
現(xiàn)在我們需要讓 docker 與 docker-machine 通信,運(yùn)行 docker-machine env <虛擬機(jī)名稱(chēng)> 來(lái)實(shí)現(xiàn)這個(gè)目的。
# eval "$(docker-machine env linux)"
# docker ps
這個(gè)命令會(huì)設(shè)置 TLS 認(rèn)證的環(huán)境變量,每次重啟機(jī)器或者重新打開(kāi)一個(gè)會(huì)話都需要執(zhí)行一下這個(gè)命令,我們可以看到它的輸出內(nèi)容:
# 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. 運(yùn)行 Docker 容器
完成配置后我們就可以在 VirtualBox 上運(yùn)行 docker 容器了。測(cè)試一下,我們可以運(yùn)行虛擬機(jī) docker run busybox ,并在里面里執(zhí)行 echo hello world 命令,我們可以看到容器的輸出信息。
# docker run busybox echo hello world

5. 拿到 Docker 主機(jī)的 IP
我們可以執(zhí)行下面的命令獲取運(yùn)行 Docker 的主機(jī)的 IP 地址。我們可以看到在 Docker 主機(jī)的 IP 地址上的任何暴露出來(lái)的端口。
# docker-machine ip

6. 管理主機(jī)
現(xiàn)在我們可以隨心所欲地使用上述的 docker-machine 命令來(lái)不斷創(chuàng)建主機(jī)了。
當(dāng)你使用完 docker 時(shí),可以運(yùn)行 docker-machine stop 來(lái)停止所有主機(jī),如果想開(kāi)啟所有主機(jī),運(yùn)行 docker-machine start。
# docker-machine stop
# docker-machine start
你也可以只停止或開(kāi)啟一臺(tái)主機(jī):
$ docker-machine stop linux
$ docker-machine start linux
總結(jié)
最后,我們使用 Docker Machine 成功在 VirtualBox 上創(chuàng)建并管理一臺(tái) Docker 主機(jī)。Docker Machine 確實(shí)能讓用戶(hù)快速地在不同的平臺(tái)上部署 Docker 主機(jī),就像我們這里部署在 VirtualBox 上一樣。這個(gè) virtualbox 驅(qū)動(dòng)可以在本地機(jī)器上使用,也可以在數(shù)據(jù)中心的虛擬機(jī)上使用。Docker Machine 驅(qū)動(dòng)除了支持本地的 VirtualBox 之外,還支持遠(yuǎn)端的 Digital Ocean、AWS、Azure、VMware 以及其它基礎(chǔ)設(shè)施。
相關(guān)文章

輕松玩轉(zhuǎn)虛擬機(jī)套娃! 在Hyper-V中開(kāi)啟嵌套虛擬化的技巧
有辦法在虛擬機(jī)中創(chuàng)建虛擬機(jī)嗎?答案是肯定的,在虛擬機(jī)中運(yùn)行虛擬機(jī)是可能的,我們將其稱(chēng)為嵌套虛擬化,下面我們就來(lái)看看詳細(xì)操作方法2025-02-19
龍蜥操作系統(tǒng)Anolis OS-23.x安裝配置圖解教程(保姆級(jí))
本文主要介紹了安裝和配置AnolisOS 23.2系統(tǒng),包括分區(qū)、軟件選擇、設(shè)置root密碼、網(wǎng)絡(luò)配置、主機(jī)名設(shè)置和禁用SELinux的步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-20
VMware虛擬機(jī)怎么復(fù)制/克隆/導(dǎo)出VMDK文件?
在處理文件拷貝復(fù)制到VMware虛擬機(jī)中的任務(wù)時(shí),有多種方法可以實(shí)現(xiàn)文件的高效傳輸,使用這些方法,可以在不同的操作系統(tǒng)和環(huán)境下,實(shí)現(xiàn)文件的快速、安全遷移,詳細(xì)請(qǐng)看下文2024-09-24
統(tǒng)信 UOS V20 桌面專(zhuān)業(yè)版更新發(fā)布:附更新內(nèi)容匯總
統(tǒng)信 UOS V20 桌面專(zhuān)業(yè)版(1070u1)正式發(fā)布,支持微信掃碼登錄、應(yīng)用窗口縮略圖,海量功能修復(fù),詳細(xì)請(qǐng)看下文介紹2024-08-08
怎么看自己IP地址? 不同的操作系統(tǒng)中查看路由器的IP地址的方法
在互聯(lián)網(wǎng)上進(jìn)行網(wǎng)絡(luò)連接,每個(gè)設(shè)備都有一個(gè)唯一的標(biāo)識(shí),即IP地址,本文介紹了如何在不同平臺(tái)上查找路由器的IP地址,包括Windows、Mac、iPhone、iPad、Android、Chrome OS和2024-07-16
mware虛擬機(jī)運(yùn)行速度卡慢原因分析及解決辦法
很多人在使用虛擬機(jī)系統(tǒng)的時(shí)候,經(jīng)常對(duì)虛擬機(jī)的運(yùn)行速度不甚滿(mǎn)意,甚至經(jīng)常很惱火,虛擬機(jī)速度慢有很多原因,每個(gè)人需要根據(jù)自己的情況具體分析,本文根據(jù)筆者的使用經(jīng)驗(yàn)將2024-02-21
Vmware虛擬機(jī)如何與主機(jī)之間直接復(fù)制粘貼文件?
使用虛擬機(jī)的時(shí)候,遇到了錯(cuò)誤,想要把錯(cuò)誤的代碼或是運(yùn)行情況復(fù)制粘貼到Windows的網(wǎng)上論壇區(qū)求助大神,該怎么操作呢?詳細(xì)請(qǐng)看下文介紹2024-02-21
統(tǒng)信UOS V20桌面專(zhuān)業(yè)版(1060)11月更新發(fā)布(附更新內(nèi)容匯總)
國(guó)產(chǎn)桌面操作系統(tǒng)統(tǒng)信 UOS V20 專(zhuān)業(yè)版(1060)11月更新發(fā)布,這是統(tǒng)信 UOS V20 專(zhuān)業(yè)版(1060)2023 年度最后一次更新,下面我們就來(lái)看看詳細(xì)的更新內(nèi)容2023-12-01
統(tǒng)信 UOS 將推 Rust 版 Bash 命令行工具 utshell(附下載地址)
統(tǒng)信 UOS 服務(wù)器版將于不久后推出 Rust 版 Bash,名為 utshell,旨在突破傳統(tǒng) Shell 所面臨的安全限制,詳細(xì)請(qǐng)看下文介紹2023-09-20
UOS開(kāi)機(jī)進(jìn)入busybox界面怎么辦 uos無(wú)法進(jìn)入桌面的解決辦法
UOS開(kāi)機(jī)進(jìn)入busybox界面怎么辦?UOS系統(tǒng)開(kāi)機(jī)黑屏進(jìn)入busybox界面了,該怎么辦呢?下面我們就來(lái)看看uos無(wú)法進(jìn)入桌面的解決辦法2023-09-06








