如何在容器内与docker客户端正确交互

时间:2017-10-21 00:21:05

标签: docker flask

我正在编写一个带有flask的小应用程序,它旨在与docker api交互,以便按需运行容器。我想在docker容器中部署此应用程序。但是,我知道安装docker socket是相对糟糕的,因为它在本地主机上具有root权限。

是否有正确的方法来访问容器内的docker api以避免这种警告?

1 个答案:

答案 0 :(得分:1)

为什么将Docker插座安装到非特权容器上是一个坏主意?
为了将unix套接字安装到Docker容器,您需要更改Docker守护程序套接字的权限。显然,这可以为非root用户提供访问Docker守护程序的能力,如果您担心权限提升攻击,这可能是一个问题。 (source

我真的需要保护Docker套接字吗?
这取决于您的用例。如果您的服务器上有许多用户,并且特别担心影响您的应用程序的非特权用户,那么肯定会保护套接字。如果这是一个完全专用于应用程序的虚拟机,则不安全可能会更容易。

如何不安全地与套接字进行交互?
只需更改权限(described here),然后将套接字挂载到容器即可。就这么简单。

如何安全地与套接字进行交互?
我认为有两种好方法可以做到这一点:

  1. 启用TLS身份验证后重新启动Docker守护程序。而不是访问unix套接字,而是使用带有签名SSL密钥的HTTPS访问它。可以找到有关设置的更多说明here

  2. 按照here所述,在unix套接字上使用授权插件。

相关问题