在Docker容器中挂载SMB / CIFS共享
我有一个在Docker容器中运行的Web应用程序。此应用程序需要访问我们公司文件服务器(带有Active Directory域控制器的Windows
Server)上的某些文件。我尝试访问的文件是为我们的客户创建的图像文件,Web应用程序将它们显示为客户产品组合的一部分。
在我的开发机器上,我通过条目安装了适当的文件夹,/etc/fstab
并且通过--volume
参数将主机安装点安装在Docker容器中。这很完美。
现在,我试图将一个生产容器放在一起,该容器将在其他服务器上运行,并且不依赖于主机上安装的CIFS共享。因此,我尝试将适当的条目添加到/etc/fstab
容器中的文件中,并使用进行安装mount
-a。我懂了mount error(13): Permission denied
。
网上的一些研究使我想到了有关Docker安全性的本文。如果我正确地阅读了这篇文章,那么看来Docker明确拒绝了在容器中挂载文件系统的功能。我尝试以只读方式安装共享,但这(毫不奇怪)也失败了。
因此,我有两个问题:
我理解Docker可以防止使用
mount
内部容器是正确的吗?谁能想到另一种方法来完成此任务, 在主机上安装CIFS共享,然后在Docker容器中安装主机文件夹?
回答:
是的,作为安全措施,Docker阻止您在容器内安装远程卷。如果您信任图像以及运行它们的人员,则可以使用--privileged
带有的标志docker
run来禁用这些安全措施。
此外,您可以组合--cap-add
并--cap-
drop仅向容器提供其实际需要的功能。(请参阅文档)此SYS_ADMIN
功能是授予安装特权的功能。
以上是 在Docker容器中挂载SMB / CIFS共享 的全部内容, 来源链接: utcz.com/qa/435954.html