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不支持加密。

参考技术A 日 docker 19.03 overlay 挂载 先在宿主机上模拟 overlay 挂载。 建立需要的目录 [root@master overlay-fs]# tree ... 参考技术B 首先一个名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的overlay2目录

里边有一些软连接指向 /overlay2/CacheID 目录下的 diff目录。
这是为了避免挂载命令超出长度。

镜像各层存对应overlay2下边一个目录

各层存储目录如下:

容器层对应两个目录:一个以CacheID命名。一个以CacheID-init 命名。

对应一个以CacheID命名的目录

如上可见,该存储对应 的容器名为 das-db

将 /var/lib/docker 目录移动到NFS挂载的目录之后,docker启动不起来

查看报错日志如下
参考技术A overlay2不支持volume配置到nfs

以上是关于docker里面overlay作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

docker里面- -name命令作用是啥?

溢出:覆盖在 Firefox 中不起作用

Docker-05-跨主机overlay网络

10: docker 跨主机的容器间通信(macvlan / overlay )

如何合并/清理 .querySelector 元素

Docker网络 overlay模式