#Docker Engine和Docker Machine介绍
[toc]

1 Docker Engine

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 Engine组成图

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

备注:curl
curl可以帮你完成你所有在浏览器上的操作,比如登录(这就是传输数据),下载文件,上传文件等等功能

2 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的具体使用场景:

您可以使用Docker Machine来: 在Mac或Windows上安装并运行Docker 配置和管理多个远程Docker主机 提供Swarm群集

3 Docker Machine 与 Docker Engine概念上的区别

Docker Engine: 主要用来接收和处理docker命令请求的
Docker Machine:则主要用来管理 docker化的host (安装了Docker Engine的主机)
machine

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

4 使用Docker Machine

在linux上

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

检查版本

$ docker-machine version

卸载Docker Machine

#删除可执行文件
$rm $(docker-machine)
#或者,删除您创建的机器,要单独删除每台机器
$docker-machine rm <machine-name>
#要删除所有机器
$docker-machine rm -f $(docker-machine ls -q)
$docker-machine ls
$docker-machine create --driver virtualbox default
$docker-machine env default
$eval "$(docker-machine env default)"
$docker-machine ip default
$docker-machine stop default
$docker-machine start default

参考

1 Docker Machine Overview
2 Docker Machine是什么


                                     2017-11-29-Boy
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐