Docker笔记
核心概念
- swarm:集群
- node:集群中的节点
- stack:技术栈,作为一个整体统一管理的不同类型实例
- container:容器,通过镜像启动而成的服务进程,类比面向对象中的实例
- image:镜像,打包好的程序包,类比面向对象中的类
概述
装有docker服务的服务器被称为node(节点),集群中有一个管理节点和多个工作节点,所有操作必须通过管理节点来操作。
docker中集群被称为swarm,在这些节点上启动实例时,这些节点是均匀分布的。
docker集群包括两种类型的节点:manager节点和worker节点。节点的管理功能需要在管理节点中执行,worker节点只负责接收和转发请求。
docker实例分布在不同的主机,那么请求怎么能保证均匀转发到这些实例上?集群的通讯像下图所示,集群中每台机器上的docker服务成为了一个负载均衡器,将接收到的请求转发到集群所管理的应用实例上,如果本机上没有实例,则会将请求发到其他机器上的实例。
一个镜像可以启动多个实例,但对于网络应用来说,往往会监听一个固定的端口,手动启动会出现端口被占用的问题。通过docker启动多个实例可以解决这个问题。
为了实现这个功能,需要使用docker-compose.yml文件来配置。
通过docker-compose.yml配置文件来启动的实例在docker中是作为一个stack(技术栈)来管理的,这个技术栈的名字在启动时输入。
Dockerfile的写法
docker-compose.yml文件的写法
重要命令
参考资料
(未完待续。。。)