Docker只在虚拟机上,而不是在物理机上?

我在一个合作位置数据中心有两台物理机器,并且想要最好的使用它。 我正在考虑使用Docker,Weave来运行高安全的Web应用程序(Tomcat,Mysql,Mongodb),并希望得到额外的安全。 以下是我的架构。 有Docker部署经验的人可以提供反馈吗?

a)使用SSH在两台物理机上创build一个centos 6操作系统并安装Shorewall。 Shorewall FW将仅限制ssh和端口80,443,80,443将转发到运行tomcat容器的虚拟机。 这个物理机器上没有安装docker。

b)在两台物理机上安装Virtualbox并启动多个虚拟机,每台虚拟机都可以通过物理机上的SSH隧道访问,从而提供额外的安全层

c)在每个虚拟机上build立docker和weavenetworking,从而在虚拟机上以主机的方式构buildnetworking

d)所有tomcat,mysql,mongodb容器只在虚拟机上启动。

这个configuration的优点是我的物理机器和Docker是分开的,并增加了一个额外的安全层。

我正在计划build立这个。 我想知道是否有人预计任何问题或挑战或build议,以更安全/可靠的方式使用2台服务器。

任何指导,或进一步阅读链接高度赞赏。

感谢英国。

您的基础设施是一个好的开始,但只是一个开始。

您需要正确configuration这些应用程序以便更安全(无论在Docker容器中运行的方式或位置):例如,确保您的头部响应不包含应用程序的名称及其名称版本(请参阅Apache Tomcat 8安全性注意事项或“ 提高Apache Tomcat安全性 ”)

另外,Docker容器的问题是在这些容器中以root身份运行的进程,并直接对内核进行系统调用 (默认情况下没有作用域限制,意味着允许所有的系统调用)。
Docker 1.9开始使用PR 12648(用户命名空间的第一阶段实现作为重新映射的容器根目录),并发布了15187

  • 所有容器都有自己的用户名空间(有效地防止使用--net=host--net=container:<id> )。
  • 守护进程范围的设置重新映射所有容器的root用户。