Docker三剑客之machine

本文介绍了Docker官方的Machine项目,一个用于安装、配置和管理Docker环境的Go语言工具,支持多种云平台和本地主机,简化了多环境部署和维护。文章详细讲解了安装步骤以及如何通过Machine连接和操作不同平台的Docker环境。
摘要由CSDN通过智能技术生成

1.Machine简介

   Machine项目是Docker官方的开源项目,负责实现对Docker运行环境进行安装和管理,特别在管理多个Docker环境时,使用Machine要比手动管理高效的多。

    Machine项目主要由Go语言编写,用户可以在本地任意指定由Machine管理的Docker主机,并对其进行操作。

   其基本功能包括:

  1.    在指定节点或平台上安装Docker引擎,配置其为可用的Docker环境;
  2.    集中管理(包括启动,查看等)所安装的Docker环境。

   Machine连接不同类型的操作平台是通过对应的驱动来实现的,目前已经集成了包括AWS,IBM,Google,以及OpenStack,VirtualBox,vSphere等多种云平台的支持。

2.安装Machine

   Docker Machine可以在多种操作系统平台上安装,包括Linux,Mac OS,以及Windows,下面分别介绍。

   (1)Linux平台上安装

      在Linux平台上安装十分简单,推荐从官方Release库(https://github.com/docker/machine/releases)直接下载编译好的二进制文件即可。

      例如,在Linux 64位系统上直接下载对应的二进制包,以最新的0.13.0为例:

$ sudo curl -L https://github.com/docker/machine/releases/download/v0.13.0/
docker-machine-'uname -s'-'uname -m' > docker-machine
$ sudo mv docker-machine /usr/local/bin/docker-machine
$ sudo chmod +x /usr/local/bin/docker-machine

  安装完成后,查看版本信息,验证运行正常:

$ docker-machine -v 
docker-machine version 0.13.0, build 9ba6da9

    (2)Mac OS 系统上的安装

    Mac OS平台上的安装跟Linux平台十分类似,唯一不同的是下载二进制文件的路径不同。例如,同样是0.13.0版本,Mac OS平台上的安装命令为:

$ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-
machine-'uname -s'-'uname -m' > /usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine

   (3)Windows 系统上的安装

  Windows 平台的安装要复杂一些,首先需要安装 git-bash(https://git-for-windows.github.io)。git-bash是Windows下的git客户端软件包,会提供类似Linux下的一些基本的工具.例如bash、curl、ssh命令等。
  安装之后,启动一个git-bash的命令行界面,仍然通过下载二进制包方式安装Docke Machine:

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

3.使用 Machine

   Docker Machine 通过多种后端驱动来管理不同的资源,包括虚拟机、本地主机和云平台
等。通过-d选项可以选择支持的驱动类型。

   (1)虚拟机

    可以通过 virtualbox驱动支持本地(需要已安装virtualbox)启动一个虚拟机环境,并配
置为Docker主机:

$ docker-machine create --driver=virtualbox test

  将启动一个全新的虚拟机,并安装Docker引擎。

  安装成功后,可以通过docker-machine env命令查看访向所创建Docker 环境所需
要的配置信息:

$ docker-machine env test
  export DOCKER_TLS_VERIFY="1"
  export DOCKER_HOST="tcp://192.168.56.101:2376"
  export DOCKER_CERT_PATH="/Users/<yourusername>/.docker/machine/machines/default"
  export DOCKER_MACHINE_NAME="test"
  # Run this command to configure your shell:
  # eval "$(docker-machine env test)"

  使用完毕后,可以通过如下命令来停止Docker 主机:

$ docker-machine stop test

  此外,Machine 还支持Microsoft Hyper-V虚拟化平台。

   (2)本地主机

   这种驱动适合主机操作系统和 SSH服务都已经安装好,需要对其安装Docker引擎。
   首先确保本地主机可以通过 user账号的key 直接ssh到目标主机。使用generic类型
的驱动,注册一台Docker 主机,命名为 test:

$ docker-machine create -d generic --generic-ip-address=10.0.100.102 --generic-
ssh-user=user test
Running pre-create checks...
Creating machine..
(test) OUT | Importing SSH key..
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
Detecting the provisioner...
Provisioning created instance...
...

   从命令输出上可以看到,Machine 通过SSH连接到指定节点,并在上面安装Docker引擎。创建主机成功后,可以通过docker-machine ls命令来查看注册到本地管理列表中的Docker 主机:

$ docker-machine ls
NAME ACTIVE DRIVER  STATE   URL                     SWARM  DOCKER  ERRORS
test -      generic Running tcp://10.0.100.102:2376        v18.3

  还可以通过inspect 命令查看指定Docker主机的具体信息。

   (3)云平台驱动

   以Amazon Web Service云平台为例,配置其上的虚拟机为Docker主机。需要指定Access Key ID,Secret Access Key,VPC ID等信息。例如:

$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI****** --amazonec2-secret-key 8T93C******* --amazonec2-vpc-id vpc-****** aws_instance

  其他支持的云平台还包括Microsoft Azure,Digital Ocean,Exoscale,Google Compute Engine,Rackspace,IBM Softlayer等,用户可根据自己的情况选择使用。

 (4)客户端配置

       默认情况下,所有客户端配置数据都会自动存放在~/.docker/machine/machines/路径下。用户可以定期备份这一目录以避免出现客户端连接配置丢失。

       当然,该路径下的内容仅为客户端侧的配置和数据,删除其下内容并不会影响到已经创建的的Docker环境。

4.Machine命令

    Machine提供了一系列的子命令,每个命令都带有一系列参数,可以通过如下命令查看具体用法:

$ docker-machine <command> -h
machine命令列表
命令说明
active查看当前激活状态的Docker主机
config查看到激活Docker主机的连接信息
create创建一个Docker主机
env显示连接到某个主机需要的环境变量
inspect以json格式输出指定Docker主机的详细信息
ip获取指定的Docker主机地址
kill直接杀死指定的Docker主机
ls列出所有管理的主机
regenerate-certs为某个主机重新生成TLS认证信息
restart重启指定Docker主机
rm删除某台Docker主机,对应虚机也会被删除
scp在Docker主机之间以及Docker主机和本地之间通过scp命令来远程复制文件
ssh通过SSH连接到主机,执行命令
start启动一个指定的Docker主机.如果对象是虚拟机,该虚拟机将被启动。
status获取指定Docker主机的状态,包括Running,Paused,Saved,Stopped,Stopping,Starting,Error等
stop停止一个Docker主机
upgrade将指定主机的Docker版本更新为最新
url获取指定Docker主机的监听URL
help,h

输出帮助信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.小结

    当要对多个Docker主机环境进行安装,配置和管理时,采用Docker Machine的方式将远比手动方式快捷。不仅提高了操作速度,更通过批量统一的管理减少了出错的可能。尤其在大规模集群和云平台环境中推荐使用。

    安装完成Docker环境后,配合Compose和Swarm,可以实现完整的Docker容器生命周期管理。

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值