限制访问挂载的/var/run/docker.sock

我目前正在使用docker-compose和Docker开发一个webapp。 目前,在一个容器中有一个前端Nginx反向代理服务器,在另一个容器中有一个Rails应用程序。

有时,Rails应用程序需要对Nginxconfiguration文件进行更改。 我已经通过在两个容器中将configuration目录挂载为共享卷来实现这一点。

但是,要强制Nginx在Rails应用修改后重新载入configuration文件,需要发送一个HUP信号给Nginx进程。 目前,我通过将主机的/var/run/docker.sock挂载到Rails应用程序容器中并使用gem来请求主机Docker将信号发送到正确的容器来实现此目的。

这工作正常,但现在我担心安全 。 如果Rails容器受到攻击,攻击者将拥有对主机的root权限。

我想创build另一个容器谁是唯一的工作是中介访问套接字和暴露有限的API到主要的Rails应用程序。 但是,我们遇到了同样的问题,当经纪人也受到威胁时会发生什么。 不仅如此,但肯定有一个更简单的方法?

我search了一些解决scheme,以限制哪些API可以在/var/run/docker.sock上调用,但我无法find任何解决scheme。

有没有人有任何想法? 也许还有一些其他方法可以重新加载Nginxconfiguration文件,而无需通过Docker API?