Docker公司推出的三剑客:Machine、Compose和Swarm。这三件利器的出现,让Docker不仅支持单机的虚拟化,而且能支持更广泛的集群平台,提供更强大灵活的功能。本文通过简短的介绍,让对docker三剑客有个初步了解。今后遇到docker相关问题,知道用什么技术去解决。
docker-machine:解决docker运行环境问题。
docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,如果在非Linux平台上使用docker技术需要依赖安装Linux系统的虚拟机。docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术。可以把它理解为virtualbox或者vmware,最开始在win7上用得比较多,但是win10开始自带了hyper-v虚拟机,已经不再需要docker-machine了,docker可以直接运行在安装了Linux系统得hyper-v上。
dcoker-compose:解决本地docker容器编排问题。
一般是通过yaml配置文件来使用它,这个docker-compose.yml文件里能记录多个容器启动的配置信息(镜像、启动命令、端口映射等),最后只需要执行docker-compose对应的命令,例如docker-compose up就会像执行脚本一样地批量创建和销毁容器。
docker-swarm:解决多主机多个容器调度部署得问题。
swarm是基于docker平台实现的集群技术,他可以通过几条简单的指令快速的创建一个docker集群,接着在集群的共享网络上部署应用,最终实现分布式的服务。
swarm技术不是很成熟,很多配置功能都无法实现,只能说是个半成品,目前更多的是使用Kubernetes来管理集群和调度容器。
总结
如果你是在非Linux环境下考虑使用docker-machine,当然我更推荐使用hyper-v或者virtualbox。如果你需要同时操作多个容器,或者希望使用配置文件记录容器启动命令参数,那么推荐使用docker-compose。如果你需要在多台主机上部署docker容器,并对其进行调度,那么swarm是一种选择,当然更推荐Kubernetes。