对docker宿主机进行安全加固
务必保证docker宿主机的安全,需要对宿主机的系统进行安全加固处理,主机加固可以参考相关的安全checklist以及各企业制定的主机安全规范,在这里就不再赘述。
限制容器之间的网络流量
在默认情况下,同一主机上的所有容器之间网络流量不受限制。因此,每个容器都有可能在同一主机上的容器网络上读取所有数据包。这可能会导致意外泄露信息。因此,需要限制容器间通信具体操作:在守护进程模式下运行docker,并将’–icc = false’作为参数。如:/ usr / bin / dockerd –icc = false
配置Docker守护程序的TLS身份验证
在默认情况下,Docker守护程序绑定到非联网的Unix套接字,并以root权限运行。若将默认的docker守护程序更改为绑定到TCP端口或任何其他Unix套接字,那么任何有权访问该端口或套接字的人都可以完全访问Docker守护程序。因此,不应该将Docker守护程序绑定到另一个IP /端口或Unix套接字。如果必须通过网络套接字暴露Docker守护程序,需为守护程序和Docker Swarm API配置TLS身份验证。
启用用户命名空间支持
防止容器内的提权攻击的最佳方法是将容器的应用程序配置为无特权用户运行。对于必须使用roo身份运行的容器,可以将该用户重新映射到Docker主机上特定用户。映射的用户被分配一个范围的UID,它们在命名空间内作为正常的UID,但对主机本身没有特权。
限制容器的内存使用量
在默认情况下,容器可以使用主机上的所有内存。可以使用内存限制机制来防止一个容器消耗所有主机资源的拒绝服务攻击,具体可使用使用“-m”或“–memory”参数运行容器。
$> docker run <运行参数> –memory <memory-size> <Container ImageName或ID> <Command>
适当设置容器CPU优先级
在默认情况下,CPU时间在容器间平均分配,可使用CPU共享功能来设定优先级。 CPU共享允许将一个容器优先于另一个容器,并禁止较低优先级的容器频繁地占用CPU资源。这样可确保高优先级的容器更好地运行,且可以有效的防止资源耗尽攻击。
西部数码的容器云是通过docker技术,在集群服务器上部署容器服务实现,拥有上万Linux镜像,功能强大、简单易用,可轻松作集群服务,自由组网、安全可靠。
高性价比的容器云产品链接 https://www.west.cn/paas/container/