17.04.14 docker-machine 工具使用總結(jié)(1)

參考:
https://github.com/docker/machine/
https://docs.docker.com/machine/overview/
http://lizhenliang.blog.51cto.com/7876557/1730028
https://www.oschina.net/news/50591/docker-0-10
http://www.csdn.net/article/2015-08-11/2825438

概述

官方概述3點(diǎn):

  • Install and run Docker on Mac or Windows
  • Provision and manage multiple remote Docker hosts
  • Provision Swarm clusters
    如果是windows和macos的用戶叶组,便默認(rèn)已經(jīng)帶有docker-machine了,linux用戶用它主要來做集群管理历造,管理docker等一系列的操作工具甩十。

docker machine 是一個(gè)簡(jiǎn)化的Docker安裝的命令工具,通過簡(jiǎn)單命令來進(jìn)行響應(yīng)平臺(tái)的docker安裝吭产,比如virtualbox侣监,microsoft azure。舉個(gè)如果你有多個(gè)操作系統(tǒng)臣淤,ubuntu windows centos macos橄霉,那么我都需要按照官網(wǎng)文檔上的來一步一步的學(xué)習(xí)安裝,不同的操作系統(tǒng)安裝步驟也都不一樣邑蒋,所以有了machine以后酪劫,它通過ssh來鏈接到主機(jī),我們只需要幾個(gè)簡(jiǎn)單的命令就可以讓主機(jī)安裝docker寺董,這對(duì)集群來說是非常方便的。

簡(jiǎn)單來說docker解決了一下幾個(gè)問題

  • Docker Machine簡(jiǎn)化了部署的復(fù)雜度刻剥,無論是在本機(jī)的虛擬機(jī)上還是在公有云平臺(tái)遮咖,只需要一條命令便可搭建好Docker主機(jī)
  • Docker Machine提供了多平臺(tái)多Docker主機(jī)的集中管理
  • Docker Machine 使應(yīng)用由本地遷移到云端變得簡(jiǎn)單,只需要修改一下環(huán)境變量即可和任意Docker主機(jī)通信部署應(yīng)用

安裝docker-machine

安裝過程請(qǐng)參考:https://github.com/docker/machine/
在安裝過程中造虏,可能會(huì)遇到,curl下載不下來的情況,所以我們可以自己去git上去下載御吞,選擇自己得操作系統(tǒng)版本

image.png

我們可以使用windows翻墻或者用代理的方式去下載好machine傳入給linux操作系統(tǒng)


image.png

后面發(fā)現(xiàn),之所以慢,原來漓藕。陶珠。。享钞。


image.png

在我翻墻或者使用迅雷下載以后

image.png

這個(gè)時(shí)候我們使用 docker-machine 命令就可以查看到此工具的幫助信息了

附加(安裝docker-machine bash自動(dòng)完成腳本)

  • 命令自動(dòng)完成
  • 在shell提示符中顯示活動(dòng)的機(jī)器
  • 一個(gè)函數(shù)包裝器揍诽,它添加了docker-machine use子命令來切換活動(dòng)的計(jì)算機(jī)

https://github.com/docker/machine/tree/master/contrib/completion/bash

Docker machine運(yùn)行原理

這張圖是官網(wǎng)介紹圖,docker-machine是更方便集群管理的,就和你得服務(wù)器管理員一樣暑脆,無論是做監(jiān)控還是做操作渠啤,通過docker-machine便可以去管理一片docker主機(jī),在使用過程中添吗,我們可以去使用virtualbox來安裝多個(gè)虛擬機(jī)器來安裝docker沥曹,并且使用docker-machine來管理這些機(jī)器

image.png

命令解析

image.png

使用Docker Machine和本地虛擬機(jī)的docker主機(jī)

https://docs.docker.com/machine/get-started/
如果是linux的用戶,在我們已經(jīng)確保服務(wù)器含有 VirtualBox 軟件后(如果沒有裝virtualbox我們使用<code>#apt install virtualbox</code>)碟联, 我們可以直接安裝docker提供的一個(gè) Boot2Docker妓美,Boot2Docker是一個(gè)專門用于運(yùn)行Docker容器的輕量級(jí)Linux發(fā)行版,這樣可以保證我們的本地電腦資源盡可能的少被我們不需要的程序浪費(fèi)掉鲤孵。
Docker-machine在創(chuàng)建一個(gè)虛擬主機(jī)的時(shí)候會(huì)直接去下載boot2docker壶栋。

  • 初探運(yùn)行一個(gè)包含docker的虛擬主機(jī)
    如果遇到如下問題
rror with pre-create check: "Get https://github-
cloud.s3.amazonaws.com/releases/14930729/2a7d9b36-1aba-11e7-951b-a7c27f5bb4fd.iso?X-
Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=AKIAISTNZFOVBIJMK3TQ%2F20170414%2Fus-east-1%2Fs3%2Faws4_request&X-
Amz-Date=20170414T013059Z&X-Amz-Expires=300&X-Amz-
Signature=b4fb1737c6bc10503dec6f45e0bf6de269336fdf1f939eca6657fa207cb4c87b&X-Amz-
SignedHeaders=host&actor_id=0&response-content-
disposition=attachment%3B%20filename%3Dboot2docker.iso&response-content-
type=application%2Foctet-stream: dial tcp 52.216.64.200:443: getsockopt: connection refused"

我們可以手動(dòng)的去下載此鏡像,然后放到docker-machine能找到的地方


image.png

為了確保你不重復(fù)工作裤纹,請(qǐng)下載最新的boot2docker版本


image.png
root@ubuntu-docker:/home# docker-machine create -d virtualbox mh-keystore
Running pre-create checks...
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"

我的ubuntu-docker是運(yùn)行在windows10宿主機(jī)上的Vmware里面的一個(gè)Ubuntu16的操作系統(tǒng)委刘。下面是我查詢到的一些問題,解決方案就是在vmware當(dāng)中開啟虛擬化引擎就可以了
https://github.com/docker/machine/issues/2256

image.png

接著測(cè)試鹰椒,如果出現(xiàn)以下結(jié)果锡移,就說明virtualbox安裝成功了


image.png
root@ubuntu-docker:~/.docker/machine/cache# docker-machine create -d virtualbox mh-keystore
Running pre-create checks...
Creating machine...
(mh-keystore) Copying /root/.docker/machine/cache/boot2docker.iso to /root/.docker/machine/machines/mh-keystore/boot2docker.iso...
(mh-keystore) Creating VirtualBox VM...
(mh-keystore) Creating SSH key...
(mh-keystore) Starting the VM...
(mh-keystore) Check network to re-create if needed...
(mh-keystore) Found a new host-only adapter: "vboxnet0"
(mh-keystore) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env mh-keystore

這樣我們就創(chuàng)建了一個(gè)新的含有docker虛擬主機(jī)的環(huán)境
不得不說我的環(huán)境確實(shí)奇葩(windows10宿主機(jī)>Vmware(Ubuntu Linux)>VirtualBox(boot2docker))

docker-machine的詳細(xì)使用

在我們已經(jīng)搭建docker-machine要使用的virtual-box和boot2docker后,我們已經(jīng)成功的運(yùn)行了一個(gè)虛擬的主機(jī)操作系統(tǒng)并且已經(jīng)內(nèi)置了docker

  • 1.查看已經(jīng)啟動(dòng)的機(jī)器


    image.png
  • 2.查看主機(jī)上的環(huán)境
root@ubuntu-docker:/# docker-machine env mh-keystore
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/mh-keystore"
export DOCKER_MACHINE_NAME="mh-keystore"
# Run this command to configure your shell: 
# eval $(docker-machine env mh-keystore)
  • 3.鏈接到主機(jī)的shell,如果沒有任何的報(bào)錯(cuò)漆际,就說明鏈接成功了
#eval "$(docker-machine env my-machine)"
image.png
  • 4.查看主機(jī)的IP地址
 $ docker run -d -p 8000:80 nginx

案例淆珊,在主機(jī)my-host中創(chuàng)建一個(gè)nginx的webserver


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奸汇,隨后出現(xiàn)的幾起案子施符,更是在濱河造成了極大的恐慌,老刑警劉巖擂找,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戳吝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贯涎,警方通過查閱死者的電腦和手機(jī)听哭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塘雳,“玉大人陆盘,你說我怎么就攤上這事“苊鳎” “怎么了隘马?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)妻顶。 經(jīng)常有香客問我酸员,道長(zhǎng)蜒车,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任沸呐,我火速辦了婚禮醇王,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崭添。我一直安慰自己寓娩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布呼渣。 她就那樣靜靜地躺著棘伴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屁置。 梳的紋絲不亂的頭發(fā)上焊夸,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音蓝角,去河邊找鬼阱穗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛使鹅,可吹牛的內(nèi)容都是我干的揪阶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼患朱,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鲁僚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起裁厅,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤冰沙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后执虹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拓挥,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年袋励,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撞叽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡插龄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出科展,到底是詐尸還是另有隱情均牢,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布才睹,位于F島的核電站徘跪,受9級(jí)特大地震影響甘邀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垮庐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一松邪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哨查,春花似錦逗抑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溉奕,卻和暖如春褂傀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背加勤。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國打工仙辟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鳄梅。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓叠国,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親卫枝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煎饼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容