Docker Machine的作用
- docker目前不支持mac跟win,如果想在这两个平台上运行,就要安装这个工具。
- docker在不同的linux上得安装方法不一样,通过这个工具可以提供统一的安装方法。
Docker Machine与Docker Engine的区别
如上图所示,一般我们谈到docker的时候指的是docker engine。它包含三个部分。CLI(解析命令行的工具)Server(一个restful的服务区)RestApi(CLI与Server进行通讯的接口)
Docker 的结构如上图所示,包括Docker Machine自己的客户端跟docker的客户端,还有Rest Api。这样就可以用他们跟不同的主机上的docker进行通信了。从而起到管理多个docker Engine的效果。
Mac 安装
mac安装Docker Machine要使用Docker Toolbox,其中包括:
- Docker Machine binary
- Docker Engine binary
- Docker Compose binary
- Kitematic Docker 的GUI
- 一个shell格式的预配置文件
- VirtualBox
安装前需要知道的内容
如上图所示,在Linux上,跟docker的客户端,守护进程跟容器运行在同意太物理机器上。
但是在mac上,docker后台进程运行在一个叫做default的Linux虚拟机上。
docker的host address是这台虚拟机的地址。当你使用docker-machine启动这台虚拟机的时候,这台虚拟机会被分配一个ip地址。当运行一个docker容器的时候,容器的port会跟这台虚拟机进行绑定。
启动一个本地容器
- 创建一个新的virtual machine
- 设定环境到新的VM
- 使用docker client创建,加载和管理容器
具体命令如下:
docker-machine create --driver virtualbox default
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env default
上面的命令在VirtualBox中创建了一个新的 default VM 。
同时也创建了一个份配置,在~/.docker/machine/machines/default路径下。
$ eval "$(docker-machine env default)"
上面的命令为你正在操作的shell设置环境变量。每次打开一个shell的时候都需要进行这个操作。