我有一个相对较大的Docker群,上面运行着几十个微网络服务。
由于这些服务中只有两个或三个需要外部访问,因此大多数容器间/服务通信都通过单个覆盖网络进行。
为了收紧平台安全性,我想在覆盖网络上强加一些基于服务名称的访问控制,以防止容器“串话”。
似乎没有一种明显的方法可以做到这一点,为每个服务链接创建一个新的覆盖网络似乎有点难以管理?
我希望实现的目标是:
$ 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