docker里面overlay作用是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker里面overlay作用是啥?相关的知识,希望对你有一定的参考价值。
首先一个名ingress的overlay网络被创建,这样在你没有指定网络的情况下你的集群中的services(你可以理解为一个container,实际上它为多个重复的container,是集群中的一个概念)会自动连接到这个网络。这样集群中的services通过这个网络进行通信。
然后一个名叫docker_gwbridge的网桥被建立,这个网桥用来连接在这个网络中的Docker daemon
所以由以上可知,逻辑上我们都处于一个叫ingress的overlay网络上,实际上Docker daemon之间的通信还是通过一个叫docker_gwbridge的网桥进行的。每个services或者container同时能够加入很多个网络,但是它们只能和连接在同一个网络上的其他service或者container进行通信。
建立一个Overlay网络
当我们要建立一个overlay网络的时候有几个前提:
必须要打开必要的端口让网络能进行通信,比如必须打开2377端口的TCP、7946端口的TCP和UDP以及4789端口UDP,这都是进行通信必要的。
在你创建你自己的overlay网络之前,你必须加入一个集群或者是初始化一个集群
准备工作做好后,我们用$ docker network create -d overlay your-overlaynetwork-name来创建你的overlay网络,如果你想自己配置关于网络的IP地址范围、子网、网关或者其他选项,你能通过添加--attachable来进行配置
Overlay网络的安全性。
在默认的情况,overlay网络中的services进行通信是通过AES加密算法过的,并且集群中的管理节点会每12小时对这个加密秘钥进行更改。当你想在你自己的overlay网络中应用加密算法,你能通过--opt encrypted命令来开启加密,但是注意,windows上的Docker daemon不支持加密。
然后一个名叫docker_gwbridge的网桥被建立,这个网桥用来连接在这个网络中的Docker daemon
所以由以上可知,逻辑上我们都处于一个叫ingress的overlay网络上,实际上Docker daemon之间的通信还是通过一个叫docker_gwbridge的网桥进行的。每个services或者container同时能够加入很多个网络,但是它们只能和连接在同一个网络上的其他service或者container进行通信。
建立一个Overlay网络
当我们要建立一个overlay网络的时候有几个前提:
必须要打开必要的端口让网络能进行通信,比如必须打开2377端口的TCP、7946端口的TCP和UDP以及4789端口UDP,这都是进行通信必要的。
在你创建你自己的overlay网络之前,你必须加入一个集群或者是初始化一个集群
准备工作做好后,我们用$ docker network create -d overlay your-overlaynetwork-name来创建你的overlay网络,如果你想自己配置关于网络的IP地址范围、子网、网关或者其他选项,你能通过添加--attachable来进行配置
Overlay网络的安全性。
在默认的情况,overlay网络中的services进行通信是通过AES加密算法过的,并且集群中的管理节点会每12小时对这个加密秘钥进行更改。当你想在你自己的overlay网络中应用加密算法,你能通过--opt encrypted命令来开启加密,但是注意,windows上的Docker daemon不支持加密。
docker的overlay2目录
里边有一些软连接指向 /overlay2/CacheID 目录下的 diff目录。这是为了避免挂载命令超出长度。
镜像各层存对应overlay2下边一个目录
各层存储目录如下:
容器层对应两个目录:一个以CacheID命名。一个以CacheID-init 命名。
对应一个以CacheID命名的目录
如上可见,该存储对应 的容器名为 das-db
将 /var/lib/docker 目录移动到NFS挂载的目录之后,docker启动不起来
查看报错日志如下 参考技术A overlay2不支持volume配置到nfs
以上是关于docker里面overlay作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章