我们计划允许在我们的基础设施上执行与我们的api交互的第三方微服务代码。 dockerizing足够安全吗?是否有跟踪资源(网络,ram,cpu)容器消耗的解决方案?
答案 0 :(得分:2)
您可以安装portainer.io(请参阅its demo,密码tryportainer
)
但要真正隔离这些第三方微服务,您可以在基础架构上定义的自己的VM中运行它们。该VM将运行docker守护程序和服务。只要虚拟机可以访问API,那些微服务容器就可以正常运行,并且无法直接从基础设施中获取/访问任何内容。
您需要正确定义/调整VM的大小,以便为容器运行分配足够的资源,每个资源都确保自己的resource isolation。
答案 1 :(得分:2)
Docker(17.03)是保护隔离进程的绝佳工具。它使用内核名称空间,控制组和一些内核功能来隔离在不同容器中运行的进程。
但是,这些流程并非100%相互隔离,因为它们使用相同的内核资源。每个进行IO调用的dockerize进程都会在一段时间内离开其隔离的环境,并进入共享环境,即内核。虽然您可以为每个容器设置限制,例如可以使用多少处理器或多少RAM,但您无法对所有内核资源设置限制。
您可以阅读this article了解详情。