Linux中國

如何在雲服務提供商的平台上使用Docker Machine

1. 安裝Docker Machine

Docker Machine可以很好地支持每一種Linux發行版。首先,我們需要從Github網站下載最新版本的。這裡我們使用curl來下載目前最新0.2.0版本的Docker Machine。

在64位操作系統運行:

# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine

在32位操作系統運行:

# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386 > /usr/local/bin/docker-machine

下載最新版本的Docker Machine並將docker-machine文件放到了/usr/local/bin/後,添加執行許可權:

# chmod +x /usr/local/bin/docker-machine

完成如上操作後,我們需要確認已經成功安裝docker-machine了。可以運行如下命令檢查,它會輸出系統中docker-machine的版本:

# docker-machine -v

Installing Docker Machine

要在我們的機器上啟用docker命令,需要使用如下命令安裝Docker客戶端:

    # curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker
    # chmod +x /usr/local/bin/docker

2. 創建機器

在自己的Linux機器上安裝好了Docker Machine之後,我們想要將一個docker虛擬機部署到雲伺服器上。Docker Machine支持幾個流行的雲平台,如igital Ocean、Amazon Web Services(AWS)、Microsoft Azure、Google Cloud Computing及其它等等,所以我們可以在不同的平台使用相同的介面來部署Docker。本文中我們會使用digitalocean驅動在Digital Ocean的伺服器上部署Docker,--driver選項指定digitalocean驅動,--digitalocean-access-token選項指定Digital Ocean Control Panel提供的API Token,命令最後的是我們創建的Docker虛擬機的機器名。運行如下命令:

# docker-machine create --driver digitalocean --digitalocean-access-token <API-Token> linux-dev

# eval "$(docker-machine env linux-dev)"

Docker Machine Digitalocean Cloud

注意: 這裡linux-dev是我們將要創建的機器的名稱。<API-Token>是一個安全key,可以在Digtal Ocean Control Panel生成。要找到這個key,我們只需要登錄到我們的Digital Ocean Control Panel,然後點擊API,再點擊 Generate New Token,填寫一個名稱,選上Read和Write。然後我們就會得到一串十六進位的key,那就是<API-Token>,簡單地替換到上邊的命令中即可。

運行如上命令後,我們可以在Digital Ocean Droplet Panel中看到一個具有默認配置的droplet已經被創建出來了。

DigitalOcean Droplet Panel

簡便起見,docker-machine會使用默認配置來部署Droplet。我們可以通過增加選項來定製我們的Droplet。這裡是一些digitalocean相關的選項,我們可以使用它們來覆蓋Docker Machine所使用的默認配置。

  • --digitalocean-image "ubuntu-14-04-x64" 用於選擇Droplet的鏡像
  • --digitalocean-ipv6 enable 啟用IPv6網路支持
  • --digitalocean-private-networking enable 啟用專用網路
  • --digitalocean-region "nyc3" 選擇部署Droplet的區域
  • --digitalocean-size "512mb" 選擇內存大小和部署的類型

如果你想在其他雲服務使用docker-machine,並且想覆蓋默認的配置,可以運行如下命令來獲取Docker Mackine默認支持的對每種平台適用的參數。

# docker-machine create -h

3. 選擇活躍主機

部署Droplet後,我們想馬上運行一個Docker容器,但在那之前,我們需要檢查下活躍主機是否是我們需要的機器。可以運行如下命令查看。

# docker-machine ls

Docker Machine List

ACTIVE一列有「*」標記的是活躍主機。

現在,如果我們想將活躍主機切換到需要的主機,運行如下命令:

# docker-machine active linux-dev

注意:這裡,linux-dev是機器名,我們打算激活這個機器,並且在其上運行Docker容器。

4. 運行一個Docker容器

現在,我們已經選擇了活躍主機,就可以運行Docker容器了。可以測試一下,運行一個busybox容器來執行echo hello word命令,這樣就可以得到輸出:

# docker run busybox echo hello world

注意:如果你試圖在一個裝有32位操作系統的宿主機部署Docker容器,使用SSH來運行docker是個好辦法。這樣你就可以簡單跳過這一步,直接進入下一步。

5. SSH到Docker機器中

如果我們想在機器或者Droplet上控制之前部署的Docker機器,可以使用docker-machine ssh命令來SSH到機器上:

# docker-machine ssh

Docker Machine SSH

SSH到機器上之後,我們可以在上邊運行任何Docker容器。這裡我們運行一個nginx:

# docker run -itd -p 80:80 nginx

操作完畢後,我們需要運行exit命令來退出Droplet或者伺服器。

# exit

5. 刪除主機

刪除在運行的主機以及它的所有鏡像和容器,我們可以使用docker-machine rm命令:

# docker-machine rm linux-dev

Docker Machine Remove All

使用docker-machine ls命令檢查是否成功刪除了:

# docker-machine ls

Docker Machine Remove Check

6. 在不使用驅動的情況新增一個主機

我們可以在不使用驅動的情況往Docker增加一台主機,只需要一個URL。它可以使用一個已有機器的別名,所以我們就不需要每次在運行docker命令時輸入完整的URL了。

$ docker-machine create --url=tcp://104.131.50.36:2376 custombox

7. 管理主機

如果你已經讓Docker運行起來了,可以使用簡單的docker-machine stop命令來停止所有正在運行的主機,如果需要再啟動的話可以運行docker-machine start

# docker-machine stop
# docker-machine start

你也可以使用如下命令來使用機器名作為參數來將其停止或啟動:

$ docker-machine stop linux-dev
$ docker-machine start linux-dev

總結

Docker Machine是一個非常棒的工具,可以使用Docker容器快速地部署服務。文中我們使用Digital Ocean Platform作演示,但Docker Machine還支持其他平台,如Amazon Web Service、Google Cloud Computing。使用Docker Machine,快速、安全地在幾種不同平台部署Docker容器變得很簡單了。因為Docker Machine還是Beta版本,不建議在生產環境使用。如果你有任何問題、建議、反饋,請在下方的評論框中寫下來,我們會改進或者更新我們的內容。謝謝!享受吧 🙂

via: http://linoxide.com/linux-how-to/use-docker-machine-cloud-provider/

作者:Arun Pyasi 譯者:goreliu 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國