17.04.14 docker-machine 工具使用总结(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点:

  • Install and run Docker on Mac or Windows
  • Provision and manage multiple remote Docker hosts
  • Provision Swarm clusters
    如果是windows和macos的用户,便默认已经带有docker-machine了,linux用户用它主要来做集群管理,管理docker等一系列的操作工具。

docker machine 是一个简化的Docker安装的命令工具,通过简单命令来进行响应平台的docker安装,比如virtualbox,microsoft azure。举个如果你有多个操作系统,ubuntu windows centos macos,那么我都需要按照官网文档上的来一步一步的学习安装,不同的操作系统安装步骤也都不一样,所以有了machine以后,它通过ssh来链接到主机,我们只需要几个简单的命令就可以让主机安装docker,这对集群来说是非常方便的。

简单来说docker解决了一下几个问题

  • Docker Machine简化了部署的复杂度,无论是在本机的虚拟机上还是在公有云平台,只需要一条命令便可搭建好Docker主机
  • Docker Machine提供了多平台多Docker主机的集中管理
  • Docker Machine 使应用由本地迁移到云端变得简单,只需要修改一下环境变量即可和任意Docker主机通信部署应用

安装docker-machine

安装过程请参考:https://github.com/docker/machine/
在安装过程中,可能会遇到,curl下载不下来的情况,所以我们可以自己去git上去下载,选择自己得操作系统版本

image.png

我们可以使用windows翻墙或者用代理的方式去下载好machine传入给linux操作系统


image.png

后面发现,之所以慢,原来。。。。


image.png

在我翻墙或者使用迅雷下载以后

image.png

这个时候我们使用 docker-machine 命令就可以查看到此工具的帮助信息了

附加(安装docker-machine bash自动完成脚本)

  • 命令自动完成
  • 在shell提示符中显示活动的机器
  • 一个函数包装器,它添加了docker-machine use子命令来切换活动的计算机

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

Docker machine运行原理

这张图是官网介绍图,docker-machine是更方便集群管理的,就和你得服务器管理员一样,无论是做监控还是做操作,通过docker-machine便可以去管理一片docker主机,在使用过程中,我们可以去使用virtualbox来安装多个虚拟机器来安装docker,并且使用docker-machine来管理这些机器

image.png

命令解析

image.png

使用Docker Machine和本地虚拟机的docker主机

https://docs.docker.com/machine/get-started/
如果是linux的用户,在我们已经确保服务器含有 VirtualBox 软件后(如果没有装virtualbox我们使用<code>#apt install virtualbox</code>), 我们可以直接安装docker提供的一个 Boot2Docker,Boot2Docker是一个专门用于运行Docker容器的轻量级Linux发行版,这样可以保证我们的本地电脑资源尽可能的少被我们不需要的程序浪费掉。
Docker-machine在创建一个虚拟主机的时候会直接去下载boot2docker。

  • 初探运行一个包含docker的虚拟主机
    如果遇到如下问题
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"

我们可以手动的去下载此镜像,然后放到docker-machine能找到的地方


image.png

为了确保你不重复工作,请下载最新的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是运行在windows10宿主机上的Vmware里面的一个Ubuntu16的操作系统。下面是我查询到的一些问题,解决方案就是在vmware当中开启虚拟化引擎就可以了
https://github.com/docker/machine/issues/2256

image.png

接着测试,如果出现以下结果,就说明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

这样我们就创建了一个新的含有docker虚拟主机的环境
不得不说我的环境确实奇葩(windows10宿主机>Vmware(Ubuntu Linux)>VirtualBox(boot2docker))

docker-machine的详细使用

在我们已经搭建docker-machine要使用的virtual-box和boot2docker后,我们已经成功的运行了一个虚拟的主机操作系统并且已经内置了docker

  • 1.查看已经启动的机器


    image.png
  • 2.查看主机上的环境
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.链接到主机的shell,如果没有任何的报错,就说明链接成功了
#eval "$(docker-machine env my-machine)"
image.png
  • 4.查看主机的IP地址
 $ docker run -d -p 8000:80 nginx

案例,在主机my-host中创建一个nginx的webserver


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容