Docker Machine

http://dockone.io/article/1485?utm_source=tuicool&utm_medium=referral

本地安装与使用

Docker工具箱包括专门的工具来帮助开发人员构建现代分布式应用程序。该工具箱用于Windows和Mac系统安装使用Docker Client, Machine, Compose and Kitematic。

  • 这里我们如果要在Windows上使用Docker Machine以及Docker Client,所以需要先下载、安装。

Docker Toolbox(Windows版),安装指南-Windows版;Docker Toolbox(Mac版),安装指南-Mac版。

  • 接下来我们以Windows为例,安装完成后可以在桌面上看到如下三个图标:

  • 点击运行“Docker Quickstart Terminal”来启动一个Docker工具箱终端。

如果系统显示一个用户帐户控制提示允许VirtualBox更改你的电脑。选择Yes。接下来该终端做几件事为你建立Docker工具箱。当它完成,终端显示提示“$”。如下图:

  • 该终端运行一个特殊的bash环境而不是标准的Windows命令提示符。该bash环境正是Docker所要求的。

用鼠标点击“$”旁边激活该终端;
指令:

docker-machine --version

如果返回结果为

docker-machine.exe version 0.7.0, build a650a40

或与之类似的信息则说明Machine已成功安装,否则,就需要自己下载Machine并安装。

如果是在Windows上运行的git bash,安装Docker Machine:
指令:

if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && \
chmod +x "$HOME/bin/docker-machine.exe"

或者可以直接到Docker Machine Release页面下载安装。如下图:


如果是 OS X 或 Linux 安装 Docker Machine:
指令:

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

查看Docker Machine是否安装成功。
指令:

docker-machine --version

结果:


- 查看machine列表。

指令:

docker-machine ls

结果:


- 创建一个machine

指令:

docker-machine create --driver virtualbox my-machine

结果:


再次查看machine列表,指令:

docker-machine ls

结果:


可以看到我们刚创建的“my-machine”已出现在 machine 的列表当中。

  • 查看 machine 的环境变量的配置信息。

指令:

docker-machine env my-machine

结果:


- 连接到machine的shell。

指令:

eval "$(docker-machine env my-machine)"

结果:
如果没有任何错误提示说明连接该 machine 成功了,因为该 machine 已安装了docker client,所以此时你可以执行 docker 的相关操作。如查看 Docker 版本
指令:

docker --version

结果:


- 用 docker run 启动一个容器验证前面的安装和设置没有问题。

指令:

docker run busybox echo Hello Docker-Machine!

结果:


- 获取指定 machine 的 ip

指令:

docker-machine ip my-machine

结果:

192.168.99.104

- 在容器中运行一个页面服务器(Nginx)

指令:

docker run -d -p 9527:80 --name web-server nginx

结果:


- 访问上面获取到的 ip 和映射的端口号组成的网址,这里是192.168.99.104:9527

指令:

curl $(docker-machine ip my-machine):9527

结果:


通过同样的方法你可以创建和管理很多运行着 Docker 的本地 Machine(VMs);只需运行“docker-machine create”指令;而运行“docker-machine ls”则可以显示所有的 machine 组成的列表。

  • 启动和停止 machines

停止指令:

docker-machine stop my-machine

启动指令:

docker-machine start my-machine

- 不指定machine的名称进行操作

如果不指定 machine 的名称进行操作,则操作的 machine 默认为名称为 default 的 machine。如下图:


docker-machine 的指令列表:
- docker-machine config
- docker-machine env
- docker-machine inspect 
- docker-machine ip 
- docker-machine kill 
- docker-machine provision
- docker-machine regenerate-certs
- docker-machine restart
- docker-machine ssh 
- docker-machine start
- docker-machine status
- docker-machine stop
- docker-machine upgrade
- docker-machine url

除了名称为 default 的 machine 之外,如果要执行上面的指令,您必须显式地指定machine的名称作为参数。

  • 开机启动本地的machines

为了确保 Docker Client 自动配置在每个 shell 会话的开始,有些用户喜欢在他们的 shell 配置文件中嵌入eval $(docker-machine env default)(例如“~/.bash_profile”文件)。然而,如果名称为 default 的 machine 没有运行上面方法将会失效。但是您可以配置您的系统,将名称为 default 的 machine 设置为自动启动。当然,你也可以通过替换下面的 default 来将其他 machine 设置为开机启动。
下面介绍一下在OS X系统中如何配置
在“~/Library/LaunchAgents”文件夹下创建“com.docker.machine.default.plist”文件,编辑内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict>
        <key>EnvironmentVariables</key>
        <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
        </dict>
        <key>Label</key>
        <string>com.docker.machine.default</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/docker-machine</string>
            <string>start</string>
            <string>default</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

更多信息请参考:

Docker Machine的更多相关文章

  1. Docker Machine v1.11.2安装与使用

    官方文档:Docker Machine 官方文档:Docker Toolbox boot2docker安装包官网下载链接:Docker Toolbox-1.11.1b.exe 此安装包包含的“boot ...

  2. Docker Machine, Compose, and Swarm: How They Work Together

    The three tools are now neatly packaged into what’s called the Docker Toolbox. Docker Machine1/ crea ...

  3. [Docker] Docker Machine intro

    List all the docker machine: docker-machine ls Can check 'ip' and 'status': docker-machine ip defaul ...

  4. Docker Machine 简介

    Docker Machine 是什么? Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在 ...

  5. Docker Machine 详解

    笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...

  6. 用 Docker Machine 创建 Azure 虚拟主机

    搭建环境向来是一个重复造轮子的过程,Docker Machine 则把用户搭建 Docker 环境的各种方案汇集在了一起.笔者在<Docker Machine 简介>一文中演示了使用 Do ...

  7. 安装 Docker Machine - 每天5分钟玩转 Docker 容器技术(45)

    前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的.但在真正的环境中会有多个 host,容器在这些 host 中启动.运行.停止和销毁,相关容器会通过网络 ...

  8. Docker教程:docker machine的配置和命令

    http://blog.csdn.net/pipisorry/article/details/50921335 安装virtualbox 如果要使用virtualbox,首先要安装virtualbox ...

  9. Docker Machine搭建并加入节点

    对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...

随机推荐

  1. JavaScript网站设计实践(七)编写最后一个页面 改进表单

    一.最后一个页面 contact.html.改进表单 在该页面实现的功能: 几乎所有的网站都会有表单填写,对于用户输入和填写的数据,首先我们一般现在前台验证,然后再去后台验证. 在前台最简单的验证:检 ...

  2. java-常用快捷键

    alt+/:代码提示 ctrl+/:代码提示 ctrl+1:快速生成impl代码

  3. Lucene入门的基本知识(四)

    刚才在写创建索引和搜索类的时候发现非常多类的概念还不是非常清楚,这里我总结了一下. 1 lucene简单介绍  1.1 什么是lucene  Lucene是一个全文搜索框架,而不是应用产品.因此它并不 ...

  4. SourceTree - 好用的 Git / Mercurial GUI 管理工具 for Mac OS X

    Git 是免費.開放源碼的分散式版本控制系統,從小專案到非常大的專案,都可以很快速.有效地管理. 對程式設計師來說,一定要熟記 git 指令的用法,在終端機下操作 git 是必備的基本技能.(其他的 ...

  5. CentOS更换python版本后,yum不可用的问题

    因为yum调用了python,他的启动程序/usr/bin/yum就是一个python脚本 yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本 将 ...

  6. 一个类搞定UIScrollView那些事

    前言 UIScrollView可以说是我们在日常编程中使用频率最多.扩展性最好的一个类,根据不同的需求和设计,我们都能玩出花来,当然有一些需求是大部分应用通用的,今天就聊一下以下需求,在一个categ ...

  7. marquee 标签的使用详情

    <marquee>标签,它是成对出现的标签,首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容.<marquee>标签的属性主要 ...

  8. windows 进程间通讯方法

    Windows平台为我们提供了多种进程间通信的机制,主要包括:注册表方式.共享文件方式.共享内存方式.共享数据段.映射文件方式.管道方式. 剪贴板方式.消息方式.其中注册表方式需要增加注册表表项,而注 ...

  9. iOS常见的几种延时执行的方法

    1.performSelector [self performSelector:@selector(delayMethod) withObject:nil/*可传任意类型参数*/ afterDelay ...

  10. CentOS 6.7 final编译安装Python 2.7.11

    CentOS 6.7默认的Python版本为2.6.6,现升级为Python 2.7.11 1.安装编译环境 yum groupinstall "Development tools" ...