Docker CE(简称Docker)是一款易用简便的容器工具,是给用户带来自主和硬件无关性体验的软件。Mac版Docker并不是从一开始就支持Kubernetes,我们看看它的简史:Docker发端于DotCloud公司,一开始并不支持Windows和Mac,只能运行在Linux上。
为什么对开发者很重要?
虚机
最开始,如果Mac或者Linux用户想使用容器技术,就需要在Linux主机中安装如VirtualBox或者VMWare Workstation/Player之类的虚拟机工具,并设置共享目录。为了使用统一CLI工具,用户不得不采用Hashicorp公司的Vagrant。
使用场景:
- 这种方式都是过时的技术,不建议采用。
Docker Machine
Docker Machine是进化的第二步,采用boot2docker镜像在本地或者远程环境部署虚机,并提供可写磁盘空间,也是朝易用性迈出的一大步。一旦基于SSL认证的VM生成,Docker客户端就可以通过TCP/IP工具访问它,可以同时支持多个Docker版本构成的集群。
优点:
-
同一主机支持多个容器后端
-
只支持Linux
-
使用boot2docker镜像
-
模块化支持各家云提供商插件
缺点:
-
命令行方式操作
-
不支持Windows和Mac
使用场景:
- 使用Windows 7或者Windows 10 Home,需要在本地运行一套集群,或者需要在云端运维一套集群。
Docker for Mac/Windows
Docker Machine需要太多的手工操作(通过docker-machine env),为了采用TLS,有时还需要重建。Docker for Mac/Windows(简称DfM)本着造福广大使用者的初衷,内建UI和菜单支持,推出了功能有限的beta版本,刚开始主要是Twitter使用它。
优点:
-
安装简便
-
自动配置命令行
-
图形化界面配置
-
一键启停作业
缺点:
-
共享卷时性能很差
-
高耗能降低电池使用时间
-
支持Windows 10 pro或者enterprise
使用场景:
- 可用,但是需要本地安装Docker Swarm或者Kubernetes。
Minikube
Minikube跟docker-machine非常类似,也是依靠boot2docker,初衷是创建内含可用于开发的Docker主机的单节点Kubernetes集群。
优点:
-
本地环境易于访问
-
Kubernetes可用
缺点:
-
Kubernetes在空闲时耗费大量电力
-
感觉还是跟docker-machine很类似
-
内置Docker版本严重滞后
-
有些功能尚不支持,例如RBAC(role-based authentication control)
-
需要使用minikube start/stop
使用场景:
- 需要本地Kubernetes场景但是不必关注Docker版本。