官网:https://docs.docker.com/machine/overview/
Docker Machine,是使用Docker容器的第一步,意思就是说可以帮助用户在本地或云环境中快速创建Docker主机或主机集群,还可以用于维护集群。
其中机器要么在本地,要么就在远程,而远程的机器,有分为云服务产商CSP提供的机器,或者非CSP提供的机器,针对这三种情况,就具有了以下三种配置参数:
1)docker Machine中 -d参数还可以指定云平台,如aws等,创建的是云平台上的docker环境,其中云平台上的OS,基本都是在虚拟机内的OS,所以创建的docker环境也基本都是宿主机OS上虚拟机内的docker环境。
2)docker Machine中 -d=virtualbox参数,在本地OS上的虚拟机内创建的docker环境,那虚拟机内运行的docker环境和虚拟机内运行的Guest OS有什么区别呢? 估计的想法是,在虚拟机被启动的多个docker container之间实现了进程隔离,但没有实现硬件资源隔离。
具体的执行步骤是先虚拟机申请资源,然后在该资源上执行generic参数所包括的docker任务。
3)docker Machine中 -d=generic参数,创建的是运行在本地或远程宿主机OS上docker环境。该参数的作用是在以下两种环境上创建docker环境:(1)不直接支持docker Machine的机器,但已经安装OS和可以ssh登入(2)导入已存在OS的主机给docker Machine管理。
The driver performs a list of tasks on create:
(1)If docker is not running on the host, it is installed automatically.
(2)It updates the host packages (apt-get update, yum update…).
(3)It generates certificates to secure the docker daemon.
(4)If the host uses systemd, it creates /etc/systemd/system/docker.service.d/10-machine.conf
(5)The docker daemon restarts, thus all running containers are stopped.
(6)The hostname is updated to fit the machine name.
管理多台集群时,所采用的docker Machine方式:
宿主机OS上 | 宿主机OS上的虚拟机内 | 宿主机OS上的虚拟机内的guest OS上 | |
---|---|---|---|
本地 | 直接安装docker 、docker Machine -d generic | docker Machine -d virtualbox | 直接安装docker、docker Machine -d generic |
远程 | docker Machine -d generic | / | docker Machine -d amazonec2、docker Machine -d generic |
问题:
(1)docker容器和docker主机的区别(docker主机==docker host)
docker容器指的是依据docker image创建的实例,是一个运行态的程序;但docker主机指的是包括docker server和REST API的集合,所以docker主机不仅包括了docker容器,还有docker images,docker daemon等。
平时大家说的docker,指的是Docker Engine,而Docker Engine包括以下三部分Client(docker CLI)、REST API、Server(docker daemon)
Docker Machine指的是以下架构,方便管理集群。
(2)如何操作docker Machine?
通过 docker-machine
命令操作docker 集群:https://zhuanlan.zhihu.com/p/35102874