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文件的写法

重要命令

参考资料

(未完待续。。。)

posted @ 2019-03-03 23:03 zhangjpn 阅读(...) 评论(...) 编辑 收藏