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是用来创建和管理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 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 基本使用:
1、Docker Machine的安装:
(1)在Win、Mac下通过ToolBox安装;
(2)参考官网:https://docs.docker.com/machine/install-machine/
,通过命令行安装;
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;