亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Docker Machine是什么?

2024-09-01 13:52:13
字體:
來源:轉載
供稿:網友

Docker Machine 是什么?

Docker Machine 是 Docker 官方提供的一個工具,它可以幫助我們在遠程的機器上安裝 Docker,或者在虛擬機 host 上直接安裝虛擬機并在虛擬機中安裝 Docker。我們還可以通過 docker-machine 命令來管理這些虛擬機和 Docker。下面是來自 Docker Machine 官方文檔的一張圖,很形象哦!

Docker,Machine

本文將通過一系列 demo 來展示 Docker Machine 的主要使用場景。

安裝 Docker Machine

安裝 Docker Machine 前請先在本地安裝 Docker。

Docker Machine 的安裝十分簡單,在 Ubuntu 中直接把可執行文件下載到本地就可以了。

$ curl -L https://github.com/docker/machine/releases/download/v0.12.0/docker-machine-`uname -s`-`uname -m` > /tmp/docker-machine$ chmod +x /tmp/docker-machine$ sudo mv /tmp/docker-machine /usr/local/bin/docker-machine

其中 v0.12.0 是最新的版本。當然 Docker Machine 是個開源項目,你可以選擇安裝不同的版本,或者是自行編譯。下圖為筆者安裝之后顯示的版本信息:

Docker,Machine

在遠程主機上安裝 Docker

如果我們有多臺 Ubuntu 主機都需要安裝 Docker,怎么辦呢?是不是一個個登錄上去通過 apt-get 命令安裝呢?當然不需要,通過 docker-machine 命令我們可以輕松的在遠程主機上安裝 Docker。

前提條件

在使用 docker-machine 進行遠程安裝前我們需要做一些準備工作:
1. 在目標主機上創建一個用戶并加入sudo 組
2. 為該用戶設置 sudo 操作不需要輸入密碼
3. 把本地用戶的 ssh public key 添加到目標主機上

比如我們要在遠程主機上添加一個名為 nick 的用戶并加入 sudo 組:

$ sudo adduser nick$ sudo usermod -a -G sudo nick

然后設置 sudo 操作不需要輸入密碼:

$ sudo visudo

把下面一行內容添加到文檔的最后并保存文件:

nick ALL=(ALL:ALL) NOPASSWD: ALL

最后把本地用戶的 ssh public key 添加到目標主機上:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub nick@xxx.xxx.xxx.xxx

這幾步操作的主要目的是獲得足夠的權限可以遠程的操作目標主機。

安裝命令

在本地運行下面的命令:

$ docker-machine create -d generic / --generic-ip-address=xxx.xxx.xxx.xxx / --generic-ssh-user=nick / --generic-ssh-key ~/.ssh/id_rsa / krdevdb

注意,create 命令本是要創建虛擬主機并安裝 Docker,因為本例中的目標主機已經存在,所以僅安裝 Docker。-d 是 --driver 的簡寫形式,主要用來指定使用什么驅動程序來創建目標主機。Docker Machine 支持在云服務器上創建主機,就是靠使用不同的驅動來實現了。本例中使用 generic 就可以了。接下來以 --generic 開頭的三個參數主要是指定操作的目標主機和使用的賬戶。最后一個參數 krdevdb 是虛擬機的名稱,Docker Machine 會用它來設置目標主機的名稱。
好了,就這么簡單!經過簡短的等待 Docker 就在目標機器上安裝成功了:

Docker,Machine

檢查安裝結果

我們可以通過 Docker Machine 的 ls 命令查看當前可管理的主機列表:

Docker,Machine

其中的 krdevdb 主機就是剛才我們安裝了 Docker 的主機,最后一列顯示了安裝的 Docker 版本:v17.05.0-ce。
然后執行 eval $(docker-machine env krdevdb) 命令,就可以通過本地的客戶端操作遠程主機上的 Docker daemon 了。執行 docker version 命令看看:

Docker,Machine

請注意上圖中的 Client 和 Server 版本不一樣,這也說明了我們正在使用本地的 Client 連接遠程的 Server。

在本地主機上安裝帶有 Docker 的虛機

在實際使用中我們一般會在物理機上安裝 vSphere 等虛擬機管理軟件,并稱之為虛擬機 host。然后通過 vSphere 工具安裝虛擬機進行使用。接下來我們將介紹如何在本地的一臺安裝了 vSphere 的虛擬機 host 上安裝帶有 Docker 的虛擬機。直接上命令:

$ docker-machine create / --driver vmwarevsphere / --vmwarevsphere-vcenter=xxx.xxx.xxx.xxx / --vmwarevsphere-username=root / --vmwarevsphere-password=12345678 / --vmwarevsphere-cpu-count=1 / --vmwarevsphere-memory-size=512 / --vmwarevsphere-disk-size=10240 / testvm

解釋一下比較重要的參數:

--driver vmwarevsphere
我們的虛擬機 host 上安裝的是 vmware 的產品 vSphere,因此需要給 Docker Machine 提供對應的驅動,這樣才能夠在上面安裝新的虛擬機。

--vmwarevsphere-vcenter=xxx.xxx.xxx.xxx /
--vmwarevsphere-username=root /
--vmwarevsphere-password=12345678 /

上面三行分別指定了虛擬機 host 的 IP 地址、用戶名和密碼。

--vmwarevsphere-cpu-count=1 /
--vmwarevsphere-memory-size=512 /
--vmwarevsphere-disk-size=10240 /

上面三行則分別指定了新創建的虛擬機占用的 cpu、內存和磁盤資源。

testvm

最后一個參數則是新建虛擬機的名稱。
很快虛擬機的創建就完成了。先在 vSphere 的客戶端中看一下:

Docker,Machine

名為 testvm 的虛擬機已經在運行了。
再執行 docker-machine ls 命令看看:

Docker,Machine

已經可以看到 testvm了,并且它的 DRIVER 顯示為 vmwarevsphere。
這就搞定了嗎?

好像哪里不對呀!是的,平時我們手動創建虛機時最重要的東西是什么?是安裝虛擬機的鏡像??!但這里我們并沒有指定相關的東西,那么docker-machine 究竟給我們安裝了一個什么系統?在使用 vmwarevsphere 驅動安裝虛機時,我們不能指定自己喜歡的虛機鏡像(可能是 Docker Machine 還沒有準備好)。默認使用一個叫做 boot2docker 的虛擬機鏡像,這個東西非常小,只有幾十兆,因此安裝會很快。

管理遠程的 Docker

客戶端服務器模式

Docker 一直是以客戶端和服務器的模式運行的,只不過起初的版本是通過同一個二進制文件 docker 來啟動服務器端 daemon 和客戶端的。在近期的版本中,服務端的可執行文件已經和客戶端的可執行文件分離開了。查看 /usr/bin 目錄下的可執行文件:

Docker,Machine

其中 dockerd 就是執行服務器端任務的可執行文件。而我們平時執行本機 docker 任務則主要通過 docker 這個客戶端命令給本機的服務器端發送任務。

使用本地的客戶端連接遠程的服務器

那么本地的客戶端可不可以連接并發送任務給遠程的 Docker 服務器端呢?當然是可以的,只不過我們手動設置起來稍微麻煩一些。不過沒關系,Docker Machine 都為我們做好了!下面就讓我們看看如何通過本地的 Docker 客戶端在 krdevdb 這臺主機上運行容器:

$ docker-machine env krdevdb

Docker,Machine

這個命令輸出的內容可以作為命令來設置一些 Docker 客戶端使用的環境變量,從而讓本機的 Docker 客戶端可以與遠程的 Docker 服務器通信。按照上面的提示執行命令:

$ eval $( docker-machine env krdevdb)

好了,在當前的命令行終端中,接下來運行的 docker 命令操作的都是遠程主機 krdevdb 上的 Docker daemon。為了區分本機的 Docker daemon 操作,我們重新啟動一個新的命令行終端,然后分別執行 docker ps 命令:

Docker,Machine

從上圖中可以明顯的看出本地主機和遠程主機上分別運行著不同的容器。

管理遠程 Docker daemon

除了運行基本的 docker 命令,Docker Machine 還能夠管理遠程的 Docker 主機。比如我們可以通過 start, stop, restart 命令分別啟動、關閉和重啟遠程的 Docker daemon。這里的情況稍微復雜一些,只有支持這些命令的驅動才能完成相關的操作。比如,我們分別關閉 krdevdb 和 testvm:

Docker,Machine

前一個提示 generic 驅動不支持 stop 命令。而 testvm 是通過 vmwarevsphere 驅動安裝的,所以成功的執行了 stop。

對于遠程管理來說,SSH 的支持是必不可少的!Docker Machine 當然也盡職盡責的完成了任務:

$ docker-machine ssh krdevdb

執行上面的命令就可以了。注意,這個命令可不會提示你輸入密碼,當然更不會讓你去配置 SSH 秘鑰什么的,因為 Docker Machine 私下全把臟活累活干完了。

總結

Docker Machine 的目的是簡化 Docker 的安裝和遠程管理。從本文的內容我們也可以看到,Docker Machine 確實為我們使用和管理 Docker 帶來了很多的便利。至于有待提高的方面,現在 Docker Machine 會安裝最新版本的 Docker,筆者覺得如果能夠支持指定安裝 Docker 的版本就好了!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美激情精品一区二区| 成人欧美在线视频| 久久久久免费视频| 国产成人精品一区| 久久久免费高清电视剧观看| 97香蕉超级碰碰久久免费软件| 一本色道久久综合亚洲精品小说| 国产在线视频不卡| 色婷婷成人综合| 午夜精品久久久久久久99热浪潮| 2021国产精品视频| 91a在线视频| 日韩一区二区久久久| 亚洲人成在线一二| 国产精品av在线| 亚洲第一免费网站| 欧美日韩国产999| 欧美激情视频在线观看| 夜夜嗨av色综合久久久综合网| 91手机视频在线观看| 国产精品亚发布| 亚洲小视频在线观看| 91精品国产91久久久| 国产精品极品尤物在线观看| 亚洲精品国精品久久99热一| 久久成人精品视频| 国产免费观看久久黄| 国产在线日韩在线| 欧美大片免费观看在线观看网站推荐| 欧美在线xxx| 国产精品日韩久久久久| 久久久久久久久国产| 国产精品一区久久| 欧美日韩成人在线观看| 久久成人18免费网站| 91夜夜揉人人捏人人添红杏| 欧美又大粗又爽又黄大片视频| 亚洲最大av在线| 精品毛片三在线观看| 成人国产精品久久久| 国产日韩精品入口| 国产999精品久久久| 2018中文字幕一区二区三区| 成人疯狂猛交xxx| 欧美日韩综合视频网址| 日韩在线观看免费全集电视剧网站| 久久天堂电影网| 欧美日韩午夜激情| 一区二区亚洲欧洲国产日韩| 少妇高潮 亚洲精品| 国产精品v片在线观看不卡| 欧美洲成人男女午夜视频| 欧美一级bbbbb性bbbb喷潮片| 国产精品久久久999| 成人性生交xxxxx网站| 在线电影欧美日韩一区二区私密| 欧美视频专区一二在线观看| 国产一区二区三区在线观看视频| 亚洲欧美综合v| 深夜精品寂寞黄网站在线观看| 久久亚洲精品毛片| 日韩av在线影视| 精品色蜜蜜精品视频在线观看| 日韩av手机在线看| 91国语精品自产拍在线观看性色| 欧美日韩一区二区免费在线观看| 欧美亚洲成人网| 日韩中文字幕在线视频播放| 亚洲欧美日韩在线一区| 成人黄色影片在线| 日韩中文字幕视频在线观看| 色悠久久久久综合先锋影音下载| 久久久久久久久久国产精品| 久久成人精品视频| 亚洲精品欧美极品| 7777kkkk成人观看| 久久久国产在线视频| 国产精品一区二区3区| 欧美影院在线播放| 欧美福利视频网站| 亚洲永久在线观看| 欧美精品xxx| 日韩在线观看免费高清完整版| 国产精品啪视频| 亚洲经典中文字幕| 日韩电影大片中文字幕| 成人妇女淫片aaaa视频| 久久精品福利视频| 中文字幕欧美日韩va免费视频| 亚洲国产成人精品一区二区| 97香蕉久久夜色精品国产| 韩国国内大量揄拍精品视频| 亚洲一区二区久久| 国产精品天天狠天天看| 成人免费淫片aa视频免费| 精品国产成人av| 高清一区二区三区四区五区| 日本久久久久久久久久久| 最近中文字幕mv在线一区二区三区四区| 欧美午夜美女看片| 亚洲第一区第一页| 亚洲第一精品久久忘忧草社区| 欧美第一黄色网| 日韩成人中文字幕在线观看| 黄色成人在线免费| 亚洲国产精品美女| 5278欧美一区二区三区| 中文字幕亚洲一区| 激情av一区二区| 久久精品国产v日韩v亚洲| 97精品视频在线播放| 欧美一级在线亚洲天堂| 久久天天躁狠狠躁夜夜爽蜜月| 色综合久久中文字幕综合网小说| 国产不卡一区二区在线播放| 中文字幕av一区二区| 久热在线中文字幕色999舞| 色多多国产成人永久免费网站| 国产成+人+综合+亚洲欧美丁香花| 在线成人激情视频| 亚洲毛片在线观看| 欧美中文在线字幕| 456亚洲影院| 国产成人福利夜色影视| 91久久久久久国产精品| 91a在线视频| 国产精品久久久久影院日本| 国模视频一区二区三区| 亚洲午夜小视频| 亚洲男人天堂久| 青青精品视频播放| 日韩av中文字幕在线播放| 亚洲国产精品yw在线观看| 国内精品久久影院| 日韩精品中文字幕有码专区| 国产精品欧美日韩| 亚洲在线视频福利| 欧美与欧洲交xxxx免费观看| 欧美日韩日本国产| 欧美性理论片在线观看片免费| 中文日韩电影网站| 日韩黄色在线免费观看| 欧美成人精品在线播放| 欧美午夜www高清视频| 18性欧美xxxⅹ性满足| 深夜福利日韩在线看| 97色在线观看免费视频| 中文字幕欧美日韩va免费视频| 亚洲欧洲黄色网| 成人精品网站在线观看| 成人久久18免费网站图片| 91精品视频在线免费观看| 91极品女神在线| 精品国产老师黑色丝袜高跟鞋| 国产a∨精品一区二区三区不卡| 国产精品热视频| 成人性教育视频在线观看| 亚洲全黄一级网站| 亚洲精品国产欧美| 国产精品精品视频一区二区三区| 欧美在线观看视频| 欧美国产日产韩国视频| 亚洲日本成人网| 97在线精品视频|