Docker Machine

Docker Machine 简要介绍:

1、什么时候需要使用:

在Windows、Mac上运行Docker时需要借助Docker Machine这个工具;

  • 首先,安装Docker环境时,在Windows、Mac系统下安装Docker环境需要使用ToolBox工具;Docker ToolBox就包括了Docker Machine 主机;

  • 其次,当你需要创建和管理多个Docker主机时,最方便的方式就是借助Docker Machine来创建主机,通过本地环境变量的设置来管理Docker的远程主机;

2、Docker Engine 和Docker Machine 有什么不同:

一般我们说Docker 通常指的是Docker Engine,它是有一种C/S结构,用户通过docker client向docker daemon发送REST 请求,由3部分组成:

  • Docker Daemon — docker 的守护进程(最核心),属于C/S中的server;
  • Docker REST API — docker daemon向外暴露的REST 接口,REST API 和守护进程进行交互;(REST就是用URL定位资源,用HTTP描述操作)
  • Docker CLI 客户端— docker向外暴露的命令行接口(Command Line API),通过REST API 和守护进程进行通信;
    Docker Machine_第1张图片

Docker Machine是用来创建和管理Docker化主机的工具,并大大简化这个过程;通常会在本地系统中安装Machine,它包含了Docker Machine客户端,Docker CLI 客户端,并通过REST API来创建和管理主机;这个主机可以是本地的虚拟机,也可以是支持Docker Machine的云平台;Docker Machine是一个工具,用来在虚拟主机上安装Docker Engine,并使用 docker-machine命令来管理这些虚拟主机。

Docker Engine运行在本地linux系统上。如果你当前的系统是Linux,想在上边运行docker 命令,你只需要下载和安装Docker Egine就完了。然而,如果你想在网络上,云平台上,以及本地创建Docker host,你就需要Docker Machine。

无论是Mac,Windows或是Linux,你都可以在其上安装Docker Machine,使用docker-machine命令来创建和管理大量的Docker hosts。它会自动创建主机,在主机上安装Docker Engine,然后配置docker client。每个被管理的主机(“machine”)都是一个Docker 主机和一个配置过的client的组合。
Docker Machine_第2张图片

总结:

  • Docker Engine 主要用来接收和处理docker命令请求的。
    Docker Machine则主要用来管理 docker化的 host (安装了Docker Engine的主机)。
  • Docker Machine是当前在Win、Mac上运行Docker的唯一方式;
  • 支持在不同版本的Linux上管理多个Docker主机;
  • 是从零开始学习Docker的重要工具;
  • 提供集中创建和管理Docker主机的功能;
  • 与Docker Swarm集成创建Docker集群;
  • Docker Machine的出现大大简化了部署Docker环境的复杂度,无论是在本地虚拟机上,还是在公有云平台上,只要一条命令就可以创建多个主机,只需要修改环境变量就可以和任意的Docker主机进行通信;
  • 支持以下平台:
    Docker Machine_第3张图片

Docker Machine 基本使用:

1、Docker Machine的安装:

(1)在Win、Mac下通过ToolBox安装;
(2)参考官网:https://docs.docker.com/machine/install-machine/,通过命令行安装;
Docker Machine_第4张图片
Docker Machine_第5张图片

2、Docker Machine命令集:

(1)docker-machine help [command]:查看完整的命令说明;command查看某个子命令的完整说明;
(2)https://docs.docker.com/machine/reference/:查看官方文档;

Docker-Machine常用命令:
|命令|说明|
|–|
|docker-machine version/help |查看版本和帮助|
|docker-machine create/rm| 创建/删除一个Docker Machine|
|docker-machine start/stop| 起停Docker Machine|
|docker-machine kill |停止某个Docker主机|
|docker-machine restart |重启Docker主机|
|docker-machine active| 查看活动的Docker主机|
|docker-machine config |输出连接的配置信息|
|docker-machine env |显示连接到某个主机需要的环境变量|
|docker-machine inspect| 输出主机更新信息|
|docker-machine ip| 获取Docker主机地址|
|docker-machine ls |列出所有管理的Docker主机(查看可用的DockerMachine)|
|docker-machine status| 查看一个主机状态|
|docker-machine url| 获取主机的URL|
|docker-machine ssh |远程登录Docker machine |
|docker-machine scp |本机与machine,或machine之间传输文件|
|docker-machine regenerate-certs| 为某个主机重新成功TLS认证信息|
|docker-machine upgrade |更新主机Docker版本为最新|

3、Docker Machine 基本使用:

  • ~> docker-machine ls : ls查看可用的machine;安装ToolBox套件之后,启动Quickstart默认创建出一个default machine;

  • ~> docker-machine create --driver virtualbox cloudcomb: 使用virtualbox创建一个名为cloudcomb的machine;

  • ~> docker-machine env cloudcomb : 通过env获取machine的环境变量;有四个参数:

  • 通过env获取machine的环境变量,设置了docker客户端,和docker主机之间的通信是需要使用TLS;

  • 指明了远程docker host的IP地址和端口;

  • 指明了docker客户端在认证的过程中所使用的证书和;

  • 路径指明了当前这台machine的名字是cloudcomb;

  • ~> eval $(docker-machine env clouncomb) : 将本机的docker客户端连接到最新创建的docker machine上;首先需要将cloudcomb中的环境变量配置到当前的shell当中;

  • ~> docker run hub.c.163.com/library/busybox:latest echo hello world : 通过运行一个docker容器来验证docker machine是否正常运行;echo输出hello world;

  • ~> docker-machine rm cloudcomb : 删除先前创建好的machine;

你可能感兴趣的:(Docker)