Docker Engine 主要用来接收和处理docker命令请求的(Docker Engine==Docker引擎==Docker Engine的客户端==docker)
Docker我们一般理解的,都是C/S模型,用户通过docker client向docker daemon发送REST 请求.
Docker Engine包括这么几个部分:
1.Docker Daemon — docker 的守护进程,属于C/S中的server
2.Docker REST API — docker daemon向外暴露的REST 接口
3.Docker CLI — docker向外暴露的命令行接口(Command Line API)
因此,客户端访问服务端的方式有两种,一种是使用命令行工具,比如docker run, docker ps…等等.另一种就是直接通过调用REST API,比如发送一个curl http请求
Docker Machine是一个工具,用来在虚拟主机上安装Docker Engine,并使用 docker-machine命令来管理这些虚拟主机(Machine).是一个可以帮助我们在电脑上、在云端、在数据中心内创建 Docker 主机的应用
主要用来管理 docker化的 host (安装了Docker Engine的主机)
使用 docker-machine命令,你可以启动、查看、停止以及重启一个主机,升级Docker client和daemon,配置Machine 的 Docker client与你的主机进行通信
无论是Mac,Windows或是Linux,你都可以在其上安装Docker Machine,使用docker-machine命令来创建和管理大量的Docker hosts.
它会自动创建主机,在主机上安装Docker Engine,然后配置docker client.每个被管理的主机(“machine”)都是一个Docker 主机和一个配置过的client的组合.
docker Machine的具体使用场景:
1.你目前只有一个老版本的MacOSX(比如10.10.2)或者Windows系统,想在上边运行docker.
2.想在远程系统上创建Docker主机,比如想在网络上,云平台上,以及本地创建Docker host,你就需要Docker Machine.
3.docker在不同的linux上得安装方法不一样,通过这个工具可以提供统一的安装方法.
你可以使用Machine在一个或多个虚拟机上安装Docker Engine.这些虚拟机可以是在本地(当你使用Machine在VirtualBox安装和运行Docker Engine时)
也可以是远程的(使用Machine在云平台上创建Docker化的主机时).这些虚拟化的主机可以被认为是”machine”
Machine
解决因操作系统异构导致的安装 Docker 困难的问题,所有系统部署 Docker 都变得非常方便.

|
|
use machine
你也可以在VirtualBox等虚拟机上安装Docker engine到Docker中.在本地客户端,就好像所有的Docker 引擎运行在本地一样
- 需要先安装virtualbox这个软件
- 需要的是boot2docker.iso 只是一个普通的iso文件.
Docker Machine使用boot2docker作为virtualbox的镜像 – boot2docker是一个运行Docker容器的轻量级Linux系统,完全在内存中运行
不是下载此镜像:sudo docker pull boot2docker/boot2docker
而是 将iso放到 /home/python/.docker/machine/cache/ 再运行123456789101112131415161718192021docker-machine create -d virtualbox dev# -driver virtualbox 表示我们在VirtualBox 的虚拟机里面部署 docker,代表的是驱动类型# 最后的参数"dev" 是虚拟机(Machine)的名称# http://os1h5rv4q.bkt.clouddn.com/docker_dev.jpg#用这个Machine可以配置本地Docker客户端,用到env命令完成docker-machine env dev# 目前已經建立出來的 docker VMdocker-machine ls# Docker客户端将会使用设置的相同的环境变量通过Docker API与运行在上面的机器互相通信# 设置完成后,就可以在本地机器访问远程Dockereval $(docker-machine env dev)docker ps# 到指定的Docker Machinedocker-machine ssh dev# 启动/停止/移除/查看状态 Machinedocker-machine start/stop/rm/status dev
简单一个例子
|
|
在vm1中操作
|
|