Docker Machine

前言

原規劃本篇文章總結docker多主機網絡,可是總結多主機網絡以前必需要先可以方便的搭建多主機環境,因而有了本文。git

什麼是Docker Machine?我的理解就是一個簡單版的docker集羣管理工具,用它可以直接在其它服務器上安裝docker以及管理其上docker,而無需逐機操做。應該是有些相似docker swarm,其實對兩者瞭解還都不深,不在這裏作過多的妄測,以避免貽笑大方。本文一樣是在CloudMan相關教程的基礎上,增長部分本身的理解,以便在下一篇總結docker多主機以前可以首先提供一個搭建多主機docker的環境。github

1、Docker Machine安裝

1.1 安裝docker machine

很簡單,只須要執行如下語句便可:docker

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

這樣便安裝好了docker machine。shell

1.2 安裝命令提示

爲了獲得更好的體驗,能夠安裝bash completion script,這樣在bash中可以經過tab 鍵補全docker-mahine的子命令和參數。安裝方法是從https://github.com/docker/machine/tree/master/contrib/completion/bash下載completion script:bash

  1. docker-machine-prompt.bash
  2. docker-machine-wrapper.bash
  3. docker-machine.bash

將上述三個文件放置到/etc/bash_completion.d目錄下,並將以下代碼添加到$HOME/.bashrc:服務器

PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

這樣就能在輸入docker-machine命令時獲得提示信息。網絡

2、Docker Machine在其餘主機安裝Docker環境

2.1 Docker Machine 支持的主機類型

用Docker Machine能夠批量安裝和配置docker host,其支持在不一樣的環境下安裝配置docker host,包括:app

  1. 常規 Linux 操做系統
  2. 虛擬化平臺 - VirtualBox、VMWare、Hyper-V
  3. OpenStack
  4. 公有云 - Amazon Web Services、Microsoft Azure、Google Compute Engine、Digital Ocean等

2.2 建立 Docker machine 主機

建立machine主機要求可以無密碼登陸遠程主機,因此須要先經過以下命令將ssh key 拷貝到目標主機:ssh

ssh-copy-id -i dest_host_ip

其中dest_host_ip爲目標主機IP地址。curl

一切準備就緒,執行 docker-machine create 命令建立:

docker-machine create --driver generic --generic-ip-address dest_host_ip machinename

其中machinename爲你要建立的machine的名字,系統也會自動將此名稱修改成目標主機的hostname。--driver表示目標主機的類型,向普通的Linux中部署docker,使用generic,其餘driver能夠參考文檔https://docs.docker.com/machine/drivers/。--generic-ip-address指定目標系統的IP。

可使用如下命令查看全部以安裝節點:

docker-machine ls

3、管理 Docker Machine

3.1 docker machine 經常使用命令

能夠經過docker-machine --help查看docker-machine經常使用命令,通俗易懂。如下介紹幾個經常使用命令:

docker-machine upgrade

docker-machine upgrade host1 host2

批量更新目標主機docker版本

docker-machine config

docker-machine config host1

查看host1的 docker daemon 配置。

docker-machine inspect

docker-machine inspect host1

查看host1的docker配置詳細狀況。

docker-machine scp

docker-machine scp [machine1:][path] [machine2:][path]

在不一樣machine之間拷貝文件。

3.2 docker machine 管理目標主機

沒有docker machine的時候,執行遠程docker命令咱們須要經過-H指定目標主機的鏈接字符串,好比:

docker -H tcp://192.168.56.105:2376 ps

此命令能夠查看目標主機的容器列表

有了docker machine以後只須要執行:

eval $(docker-machine env machinename)

而後在其下操做,便如同直接在machinename上操做。

4、總結

本文簡單總結了Docker Machine的相關知識,算是爲下一步的多主機網絡打個基礎。

相關文章
相關標籤/搜索