Docker Machine是什么

Docker Engine

在说Docker Machine之前,我们先说说Docker Engine,也就是人们嘴里边常说的“docker”。Docker我们一般理解的,都是C/S模型,用户通过docker client向docker daemon发送REST 请求。

Docker Engine包括这么几个部分:

  • Docker Daemon — docker 的守护进程,属于C/S中的server
  • Docker REST API — docker daemon向外暴露的REST 接口
  • Docker CLI — docker向外暴露的命令行接口(Command Line API)

    Docker Machine是什么_第1张图片

因此,客户端访问服务端的方式有两种,一种是使用命令行工具,比如docker run, docker ps…等等。另一种就是直接通过调用REST API,比如发送一个curl http请求。

Docker Machine

Docker Machine 官方的解释是:

Docker Machine是一个工具,用来在虚拟主机上安装Docker Engine,并使用 docker-machine命令来管理这些虚拟主机。

你可以在你本地的Mac或者Windows上的box中,创建Docker hosts,也可以创建在公司内网,数据中心,或者在AWS或者Digtian Ocean等公有云平台上。

使用 docker-machine命令,你可以启动、查看、停止以及重启一个主机,升级Docker client和daemon,配置一个Docker client与你的主机进行通信。

官方给的Docker Machine的具体使用场景:

  1. 你目前只有一个老版本的MacOSX(比如10.10.2)或者Windows系统,想在上边运行docker。
  2. 我想在远程系统上创建Docker主机。

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 与 Docker Engine概念上的区别

Docker Engine 主要用来接收和处理docker命令请求的。

Docker Machine则主要用来管理 docker化的 host (安装了Docker Engine的主机)。

Docker Machine是什么_第2张图片

通常,你都是在本地安装Docker Machine。Docker Machine包含自己的命令行客户端:docker-machine以及Docker Engine的客户端:docker。你可以使用Machine在一个或多个虚拟机上安装Docker Engine。这些虚拟机可以是在本地(当你使用Machine在VirtualBox安装和运行Docker Engine时),也可以是远程的(妮妮使用Machine在云平台上创建Docker化的主机时)。这些虚拟化的主机可以被认为是“machine”。

你可能感兴趣的:(容器)