Networking Docker覆盖网络上的ACL

Networking Docker覆盖网络上的ACL,networking,docker,acl,Networking,Docker,Acl,我有一个相对较大的Docker群,上面运行着几十个微web服务 由于这些服务中只有两个或三个需要外部访问,因此大多数容器/服务间通信都是通过单个覆盖网络进行的 为了加强平台安全性,我想在覆盖网络上实施一些基于服务名称的访问控制,以防止容器“串扰” 似乎没有一种明显的方法可以做到这一点,并且为每个服务链接创建一个新的覆盖网络似乎有点难以管理 我希望实现的是: $ docker network create myoverlay -d overlay $ docker service create -

我有一个相对较大的Docker群,上面运行着几十个微web服务

由于这些服务中只有两个或三个需要外部访问,因此大多数容器/服务间通信都是通过单个覆盖网络进行的

为了加强平台安全性,我想在覆盖网络上实施一些基于服务名称的访问控制,以防止容器“串扰”

似乎没有一种明显的方法可以做到这一点,并且为每个服务链接创建一个新的覆盖网络似乎有点难以管理

我希望实现的是:

$ docker network create myoverlay -d overlay
$ docker service create --name web1 --net myoverlay apache
$ docker service create --name web2 --net myoverlay nginx
$ docker service create --name database1 --net myoverlay mysql
$ docker service create --name database2 --net myoverlay cassandra

web1 -> database1 //allowed
web2 -> database2 //allowed

web1 -> database2 //denied
web2 -> database1 //denied

这正是多docker网络的用例。为什么您认为在维护ACL的情况下,多个网络是不可管理的?因为需要内部命名约定和更仔细的IP分配,以避免与AWS范围的“开箱即用”冲突。对指数增长的列表进行编目比经典的单个iptables/ufw脚本更难……我同意@BMitch的观点——使用另一个网络是正确的方法。