摘要:是官方提供的一個(gè)工具,在集群環(huán)境中它可以幫助我們在遠(yuǎn)程的機(jī)器上安裝。安裝新版本中和版的已經(jīng)集成了,系統(tǒng)中需要自己手動(dòng)安裝。這樣做是為了讓能夠免密登陸到其他機(jī)器來執(zhí)行安裝命令。而并不是簡單的安裝使用。
Docker Machine?是 Docker 官方提供的一個(gè)工具,在集群環(huán)境中它可以幫助我們在遠(yuǎn)程的機(jī)器上安裝 Dockerr。我們還可以通過 docker-machine 命令來管理這些虛擬機(jī)和 Docker。下面是來自 Docker Machine 官方文檔的一張圖,很形象!
本文主要記錄在安裝docker machine的過程中遇到的問題,給遇到相同問題的朋友一點(diǎn)思路,同時(shí)方便自己后面查看。
1、安裝Docker Machine新版本中Windows和Mac版的docker已經(jīng)集成了Docker machine,Linux系統(tǒng)中需要自己手動(dòng)安裝。我這里使用的是Ubuntu來做Docker Host,只需要從GitHub上直接下載編譯好的文件執(zhí)行即可。Git上還提供了安裝命令,如下圖:
安裝好之后通過docker-machine -v或docker-machine version 來驗(yàn)證是否安裝成功。
如果我們需要在多臺(tái)主機(jī)安裝Docker時(shí),ssh到每臺(tái)主機(jī)多帶帶安裝也不是不行,但這樣很浪費(fèi)時(shí)間精力。Docker Machine的出現(xiàn)就幫我們解決了在多臺(tái)主機(jī)上安裝Docker的問題。
準(zhǔn)備工作為了讓Docker Machine能夠幫我們自動(dòng)安裝Docker到其他主機(jī),需要做一下幾點(diǎn)準(zhǔn)備工作:
在Docker Machine主機(jī)生成ssh key,一一copy到需要安裝 Docker的機(jī)器。這樣做是為了讓Docker Mechine能夠免密登陸到其他機(jī)器來執(zhí)行安裝命令。
在目標(biāo)主機(jī)上設(shè)置用戶sudo時(shí)不需要輸入密碼。
在Docker Machine主機(jī)生成ssh key并copy到目標(biāo)主機(jī)在Docker Machine主機(jī)執(zhí)行ssh-keygen命令,一路回車即可。生成成功后執(zhí)行ssh-copy-id命令將ssh key copy到目標(biāo)主機(jī)。注意此處目標(biāo)主機(jī)的用戶名如何和Docker Machine主機(jī)的用戶名不同,需要明確寫出用戶名,建議采用如下方法。
ssh-copy-id userName@targetIpAddress
在目標(biāo)主機(jī)執(zhí)行如下命令
sudo vim /etc/sudoers
在最后一行添加如下代碼,一定要在最后一行添加,我在安裝過程中遇到很多ssh的莫名其妙問題就是因?yàn)檫@行代碼沒在最后一行。至于為什么目前也沒搞懂。。。
用戶名 ALL=(ALL:ALL) NOPASSWD : ALL
此處的用戶名需要和前面ssh-copy-id時(shí)的用戶名一致。準(zhǔn)備工作已經(jīng)就緒,下面我們來為遠(yuǎn)程主機(jī)安裝Docker。
3、為遠(yuǎn)程主機(jī)安裝Docker在Docker Mechine主機(jī)執(zhí)行如下命令
docker-machine create -d generic --generic-ip-address=xxx.xxx.xxx.xxx --generic-ssh-user=xxx hostName
需要注意的是,create命令本來是要?jiǎng)?chuàng)建帶有docker的虛擬機(jī)。而并不是簡單的安裝Docker使用。搞清楚這一點(diǎn)很重要,我自己在最開始的時(shí)候就因?yàn)闆]搞清楚這個(gè)導(dǎo)致很多東西都無法理解。
但現(xiàn)在我們已經(jīng)創(chuàng)建好了虛擬機(jī),只需要安裝Docker即可。上述命令中 -d 是 --driver 的簡寫形式,主要用來指定使用什么驅(qū)動(dòng)程序來創(chuàng)建目標(biāo)主機(jī)。Docker Machine官方支持很多版本的driver,可以根據(jù)需要自行在官網(wǎng)查看使用。本例中使用 generic 就可以了。接下來以 --generic-ip-address用來設(shè)置需要安裝Docker的主機(jī)IP,--generic-ssh-user用來設(shè)置連接目標(biāo)主機(jī)時(shí)的ssh用戶,此處的user需要與前面ssh-copy-id時(shí)的用戶名一致。最后一個(gè)參數(shù) hostName是虛擬機(jī)的名稱,Docker Machine 會(huì)用它來設(shè)置目標(biāo)主機(jī)的名稱。
Docker-Machine確實(shí)為我們搭建集群環(huán)境提供了很大的便利,但在我實(shí)際操作的過程中發(fā)現(xiàn),使用Docker-Machine很容易遇到各種Bug導(dǎo)致安裝失敗,但多嘗試幾次也會(huì)安裝成功。因此在小規(guī)模集群時(shí)安裝速度不如直接安裝或者利用一鍵腳本直接安裝。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27539.html
摘要:既然要組集群那就涉及諸如的資源調(diào)度管理等等一系列問題。目前涉及集群的三個(gè)主要的技術(shù)無外乎三種。從本文開始作者將會(huì)一一實(shí)踐這幾種主要的集群技術(shù),話不多說,現(xiàn)在開始。完全運(yùn)行于內(nèi)存中,體積小,啟動(dòng)快。 showImg(https://segmentfault.com/img/remote/1460000015723680); 前言 相信Docker技術(shù)大家都有所了解,單個(gè)Docker能發(fā)...
摘要:參考引用會(huì)輸出幾行語句,例如的意思就是把上面的輸出當(dāng)做命令在當(dāng)前下執(zhí)行。最終的結(jié)果就是當(dāng)前下多了幾個(gè)環(huán)境變量,就是靠著這些環(huán)境變量來決定和交互的行為的。 上篇:http://www.jianshu.com/p/bde1... 已經(jīng)記錄到了再docker-machine學(xué)習(xí)中遇到的問題,但是大部分都是安裝的問題,還有在運(yùn)行過程中遇到的問題,這篇我將記錄docker-machine詳細(xì)得操...
摘要:遠(yuǎn)程部署一概要發(fā)布之前,你可能會(huì)遇到以下問題你需要登錄主機(jī),按照主機(jī)及操作系統(tǒng)特有的安裝以及配置步驟安裝,使其能運(yùn)行容器你需要研發(fā)一套工具管理多個(gè)主機(jī)并監(jiān)控其狀態(tài)你在本地開發(fā),產(chǎn)品部署在公有云平臺(tái),你希望能盡可能的減小兩個(gè)環(huán)境的差異性的出現(xiàn) Docker Machine遠(yuǎn)程部署Docker 一、docker machine概要 Docker Machine發(fā)布之前,你可能會(huì)遇到以下問題...
摘要:如果使用操作系統(tǒng)自帶包安裝,目前安裝的版本是比較舊的。之前版本如果是較低版本的系統(tǒng),需要先更新內(nèi)核。然后重復(fù)上面的步驟即可。 Quick Start Installation Ubuntu 通過系統(tǒng)自帶包安裝 Ubuntu 14.04 版本系統(tǒng)中已經(jīng)自帶了 Docker 包,可以直接安裝。 $ sudo apt-get update $ sudo apt-get install -y ...
摘要:鏈接地址首先,是基于開發(fā)的,所以本質(zhì)上在和上是無法運(yùn)行的,當(dāng)然我們不可能每個(gè)人都拿作為開發(fā)機(jī),所以官方給出了方法在和上運(yùn)行。 Because the Docker daemon uses Linux-specific kernel features, you can’t run Docker natively in OS X. Instead, you must use docker-...
閱讀 2814·2021-11-18 10:02
閱讀 3673·2021-11-15 17:59
閱讀 2306·2021-09-06 15:00
閱讀 3344·2019-08-29 16:58
閱讀 1056·2019-08-26 10:34
閱讀 1581·2019-08-26 10:15
閱讀 1286·2019-08-26 10:11
閱讀 2713·2019-08-23 18:33