Docker Machine 介紹:簡(jiǎn)化 Docker 安裝的命令行工具
Docker Machine是一個(gè)簡(jiǎn)化Docker安裝的命令行工具,通過(guò)一個(gè)簡(jiǎn)單的命令行即可在相應(yīng)的平臺(tái)上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。Docker官方是這樣介紹Machine的初衷的:
“之前,Docker的安裝流程非常復(fù)雜,用戶需要登錄到相應(yīng)的主機(jī)上,根據(jù)官方的安裝和配置指南來(lái)安裝Docker,并 且不同的操作系統(tǒng)的安裝步驟也是不一樣的。而有了Machine后,不管是在筆記本、虛擬機(jī)還是公有云實(shí)例上,用戶僅僅需要一個(gè)命令....當(dāng)然那你需要先安裝Machine。 ”
Machine的命令也非常簡(jiǎn)單:
- % machine create -d [infrastructure provider] [provider options] [machine name]
看著有點(diǎn)懵,infrastructure provider是啥?machine name是啥?我使勁想了半天也沒(méi)想到好的中文翻譯,但是你看例子就明白它們的意思了。
- $ machine create -d virtualbox dev
- [info] Downloading boot2docker...
- [info] Creating SSH key...
- [info] Creating VirtualBox VM...
- [info] Starting VirtualBox VM...
- [info] Waiting for VM to start...
- [info] "dev" has been created and is now the active host. Docker commands will now run against that host.
- $ machine ls
- NAME ACTIVE DRIVER STATE URL
- dev * virtualbox Running tcp://192.168.99.100:2375
- $ export DOCKER_HOST=`machine url` DOCKER_AUTH=identity
- $ docker run busybox echo hello world
- Unable to find image 'busybox' locally
- Pulling repository busybox
- e72ac664f4f0: Download complete
- 511136ea3c5a: Download complete
- df7546f9f060: Download complete
- e433a6c5b276: Download complete
- hello world
- $ machine create -d digitalocean --digitalocean-access-token=... staging
- [info] Creating SSH key...
- [info] Creating Digital Ocean droplet...
- [info] Waiting for SSH...
- [info] "staging" has been created and is now the active host. Docker commands will now run against that host.
- $ machine ls
- NAME ACTIVE DRIVER STATE URL
- dev virtualbox Running tcp://192.168.99.108:2376
- staging * digitalocean Running tcp://104.236.37.134:2376
Machine做事也很聰明,很符合Docker公司的做事風(fēng)格,他們號(hào)稱(chēng)自己架構(gòu)很好,方便第三方集成。所以Machine現(xiàn)在只支持有限的幾 個(gè)平臺(tái)(VirtualBox、 Digital Ocean、Microsoft Azure),其它平臺(tái)的兼容留給那些愛(ài)Docker的第三方廠商以及開(kāi)發(fā)者去做吧。所以接下來(lái)一定會(huì)有很多的廠商跟進(jìn),比如國(guó)內(nèi)阿里云之類(lèi)的,他們根據(jù) 官方的接口開(kāi)發(fā)個(gè)Driver即可加入Machine的能力。
需要注意的是Machine是完全獨(dú)立于Docker項(xiàng)目的,目前的主要維護(hù)者是也是一位叫Ben的人,當(dāng)然還是使用Go語(yǔ)言。