如何在云服务提供商的平台上使用Docker Machine

大家好,今天我们来了解如何使用Docker Machine在各种云服务提供商的平台上部署Docker。Docker Machine是一个可以帮助我们在自己的电脑、云服务提供商的平台以及我们数据中心的机器上创建Docker机器的应用程序。它为创建服务器、在服务器中安装Docker、根据用户需求配置Docker客户端提供了简单的解决方案。驱动API对本地机器、数据中心的虚拟机或者公用云机器都适用。Docker Machine支持Windows、OSX和Linux,并且提供一个独立的二进制文件,可以直接使用。它让我们可以充分利用支持Docker的基础设施的生态环境合作伙伴,并且使用相同的接口进行访问。它让人们可以使用一个命令来简单而迅速地在不同的云平台部署Docker容器。

1. 安装Docker Machine

Docker Machine可以很好地支持每一种Linux发行版。首先,我们需要从Github网站下载最新版本的。这里我们使用curl来下载目前最新0.2.0版本的Docker Machine。

在64位操作系统运行:


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

在32位操作系统运行:


  1. # 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/后,添加执行权限:


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

完成如上操作后,我们需要确认已经成功安装docker-machine了。可以运行如下命令检查,它会输出系统中docker-machine的版本:


  1. # docker-machine -v

Installing Docker Machine

要在我们的机器上启用docker命令,需要使用如下命令安装Docker客户端:


  1. # curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker
  2. # 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虚拟机的机器名。运行如下命令:


  1. # docker-machine create --driver digitalocean --digitalocean-access-token <API-Token> linux-dev
  2. # 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默认支持的对每种平台适用的参数。


  1. # docker-machine create -h

3. 选择活跃主机

部署Droplet后,我们想马上运行一个Docker容器,但在那之前,我们需要检查下活跃主机是否是我们需要的机器。可以运行如下命令查看。


  1. # docker-machine ls

Docker Machine List

ACTIVE一列有“*”标记的是活跃主机。

现在,如果我们想将活跃主机切换到需要的主机,运行如下命令:


  1. # docker-machine active linux-dev

注意:这里,linux-dev是机器名,我们打算激活这个机器,并且在其上运行Docker容器。

4. 运行一个Docker容器

现在,我们已经选择了活跃主机,就可以运行Docker容器了。可以测试一下,运行一个busybox容器来执行echo hello word命令,这样就可以得到输出:


  1. # docker run busybox echo hello world

注意:如果你试图在一个装有32位操作系统的宿主机部署Docker容器,使用SSH来运行docker是个好办法。这样你就可以简单跳过这一步,直接进入下一步。

5. SSH到Docker机器中

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


  1. # docker-machine ssh

Docker Machine SSH

SSH到机器上之后,我们可以在上边运行任何Docker容器。这里我们运行一个nginx:


  1. # docker run -itd -p 80:80 nginx

操作完毕后,我们需要运行exit命令来退出Droplet或者服务器。


  1. # exit

5. 删除主机

删除在运行的主机以及它的所有镜像和容器,我们可以使用docker-machine rm命令:


  1. # docker-machine rm linux-dev

Docker Machine Remove All

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


  1. # docker-machine ls

Docker Machine Remove Check

6. 在不使用驱动的情况新增一个主机

我们可以在不使用驱动的情况往Docker增加一台主机,只需要一个URL。它可以使用一个已有机器的别名,所以我们就不需要每次在运行docker命令时输入完整的URL了。


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

7. 管理主机

如果你已经让Docker运行起来了,可以使用简单的docker-machine stop命令来停止所有正在运行的主机,如果需要再启动的话可以运行docker-machine start:


  1. # docker-machine stop
  2. # docker-machine start

你也可以使用如下命令来使用机器名作为参数来将其停止或启动:


  1. $ docker-machine stop linux-dev
  2. $ 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版本,不建议在生产环境使用。如果你有任何问题、建议、反馈,请在下方的评论框中写下来,我们会改进或者更新我们的内容。谢谢!享受吧 :-)


原文发布时间为:2015-06-24


本文来自合作伙伴“Linux中国”

时间: 2024-12-31 18:37:37

如何在云服务提供商的平台上使用Docker Machine的相关文章

企业选择云服务提供商的五大标准

云计算市场风起云涌,已经是国内.国际厂商的兵家必争之地,根据甲骨文的观察,即使在国内用户对云计算的接受程度已经越来越高,但随着市面上云平台.云服务的种类和数量不断攀升,许多企业身处云计算的浪潮,如何精确地评估自己的需求,通过云计算的优势增强自身的核心竞争力,是目前这些企业所面临的最大难题. 面对眼花撩乱的云服务,甲骨文提出10个问题,帮助用户从安全.成本.运营.性能等层面评估云服务提供商,同时也帮助用户检视自己对于云计算的需求. 云服务提供商的10大问题 1 是否只有小型的应用可以上云? 2 云

面向云服务提供商的一种架构

本文讲的是面向云服务提供商的一种架构,[IT168 资讯]面向云服务提供商市场的交付基础架构 思杰云中心(C3)是面向云服务提供商市场推出的思杰交付基础架构产品组合.C3整合了经云验证的虚拟化产品和网络产品,可支持当今大多数大型互联网和Web服务提供商的业务运作.采用这一独特的产品组合,下一代云提供商可以充分利用部署最为广泛的.面向托管云业务的虚拟基础架构平台以及经实践检验的基础架构将业务可靠地.安全地交付给云客户和企业数据中心. 云计算时代 正如分布式计算替代主机时代成为时代主流,云计算将会成

美海军CIO迁移海军信息系统至云服务提供商 有所保留

云计算的发展已经渗透到各个行业各个领域,近期,美海军CIO指示称海军信息系统已经迁移至商用云服务提供商上,但仅限于已被批准公开发表的信息.这一消息标志着云计算在军事领域的应用又跨进了一步. 与此同时,他表示,公共云不应该用于分类或关键任务的信息或应用.这也意味着美海军对云服务的应用还是有一定限制的. 高级政府IT官员的公告标志着政府对云计算资源的明确支持,这强调了IT专业人士乐意使用基于云的服务,但使用条件并不是没有限制的,要在一定的条件下使用. 海军部门CIO Terry Halvorsen的

IDC云安全评估: 阿里云为最重视安全建设的云服务提供商

近日,全球知名咨询机构IDC发布<IDC MarketScape:中国云服务提供商,2017厂商安全评估>(以下简称IDC云安全评估报告).阿里云以其在安全上的综合实力和战略前瞻性,位居领导者区间,在安全能力和安全投入上绝对领先. 再加上此前IDC<中国公有云市场追踪报告,2016年下半年>报告显示,阿里云已占中国IaaS市场41%的份额,保持130%的规模增速.两份报告结果表明,阿里云在保持强劲市场竞争力的同时,在安全稳定和用户信任感上获得多方认可,成为云竞争版图中的 "

企业云服务提供商Mulesoft上市首日收盘价24.75美元/股

企业云服务提供商Mulesoft上市首日收盘价24.75美元/股,涨幅46%为今年最高企业云服务提供商MuleSoft已于今日上市,股票代码为"MULE", 收盘价为24.75美元/股,与发行价格相比上涨了46%.据悉,其之前目标股价定在每股17美元,原先预期发行价区间为每股14美元到16美元. 按照计划,这次MuleSoft预计发行1300万普通股,引入2.21亿美元的新一轮资金.Mulesoft 上市首日涨幅,超过了月初上市Snap的44%,成为今年IPO首日涨幅最多的股票. Mu

阿里云已成国内最大金融云服务提供商?

本文讲的是阿里云已成国内最大金融云服务提供商?[IT168 云计算]"目前,阿里金融云服务了超过2000家金融机构,其中包括几十家银行.50多家保险公司.70多家证券公司和千余家互联网金融机构." 阿里金融云总经理徐敏表示,阿里金融云的业务以每年超过十倍的速度增长,这也让阿里金融云成为国内金融行业最大的云服务商. 阿里金融云来自阿里云,是针对金融机构打造的符合监管需求的金融云平台.构建起了能够覆盖全国的金融级云计算网络,具备三地五中心的容灾能力.同时,为满足不同客户需求,阿里金融云提供

作为一个云服务提供商,亲加通讯云能为开发者带来怎样的收益?

在通讯云领域,亲加可谓是一个老兵了,从 成立之初,亲加通讯云就一直致力于多媒体通讯领域的耕耘,积累了诸多的技术基础及经验.伴随着移动互联网及云服务的兴起,亲加通讯云瞄准了移动App内社交.聊天的刚需,通过云服务的模式,快速.简便的将多媒体通讯功能提供给开发者,让开发者能够快速为自己的App添加应用内的用户间单聊.群聊.对讲机.实时语音聊天等功能,从而助力App社交化. 如果一个开发者自己动手为应用搭建聊天.通讯的功能,至少需要2.3个月才能完成.而下载亲加通讯云的相关API接口或SDK开发包,可

爱帮网宣布与国内最大移动APP云服务提供商云来网络开启战略合作

日前,国内领先的生活搜索服务商爱帮网宣布与国内最大移动APP云服务提供商云来网络开启战略合作.云来网络作为爱帮移动APP产品的唯一技术提供与业务合作方,欲依托爱帮网生活服务领域的商户资源,进一步扩大其市场份额.同时,爱帮网将与云来网络在云来APP.云品牌.云服务平台等众多产品线上展开深度合作,为签约商户定制一站式移动营销服务. 据了解,目前爱帮网联合云来网络推出了一款针对本地商户的移动产品,该产品包括企业官方APP.企业品牌APP平台,就像是企业自己的"电子商店",可展示及自主更新产品

盘点各大云服务提供商:麦当劳=AWS,汉堡王=?

2013年,将众多云计算类的服务放在一起比较时,仍然有两个大问题主导着这场讨论:这个市场能支持多少个玩家?云资源是不是一种商品? 5月9日在拉斯维加斯举行的clouderati-filled Cloud 2020聚会上这个话题被提出(有人暗示云计算市场将会被亚马逊AWS和Google两个巨头垄断),5月15日的Google I/O大会上,随着Google Compute Engine平台的正式对外开放,这个话题又重新引起了业界的讨论.这个关于云计算市场将如何发展的问题,或许我们可以从快餐行业中得