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
用户。