当前位置: 首页 > 面试题库 >

在Docker容器中挂载SMB / CIFS共享

连翰
2023-03-14
问题内容

我有一个在Docker容器中运行的Web应用程序。此应用程序需要访问我们公司文件服务器(带有Active Directory域控制器的Windows
Server)上的某些文件。我尝试访问的文件是为我们的客户创建的图像文件,Web应用程序将它们显示为客户产品组合的一部分。

在我的开发机器上,我通过条目安装了适当的文件夹,/etc/fstab并且通过--volume参数将主机安装点安装在Docker容器中。这很完美。

现在,我试图将一个生产容器放在一起,该容器将在其他服务器上运行,并且不依赖于主机上安装的CIFS共享。因此,我尝试将适当的条目添加到/etc/fstab容器中的文件中,并使用进行安装mount -a。我懂了mount error(13): Permission denied

网上的一些研究使我想到了有关Docker安全性的本文。如果我正确地阅读了这篇文章,那么看来Docker明确拒绝了在容器中挂载文件系统的功能。我尝试以只读方式安装共享,但这(毫不奇怪)也失败了。

因此,我有两个问题:

  1. 我理解Docker可以防止使用mount内部容器是正确的吗?

  2. 谁能想到另一种方法来完成此任务, 而无需 在主机上安装CIFS共享,然后在Docker容器中安装主机文件夹?


问题答案:

是的,作为安全措施,Docker阻止您在容器内安装远程卷。如果您信任图像以及运行它们的人员,则可以使用--privileged带有的标志docker run来禁用这些安全措施。

此外,您可以组合--cap-add--cap- drop仅向容器提供其实际需要的功能。(请参阅文档)此SYS_ADMIN功能是授予安装特权的功能。



 类似资料:
  • 问题内容: 有谁知道如何使用centos基本映像在docker容器中安装nfs共享?我已经尝试过以下命令: 并得到下一个错误: 当我尝试将其与 -o nolock 选项一起使用时,错误是: 问题答案: 对于使用,您需要具有此功能,Docker在创建容器时会丢弃该功能。 有几种解决方案: 用标志启动容器。这将导致Docker保留该功能,从而使您可以从容器内挂载NFS共享。这可能是一个安全问题;不要在

  • 我必须更新一个旧的文件共享软件,该软件使用JCIFS for Windows Server 2012。出于安全目的,我们必须禁用SMB 1.0/CIFS兼容性。有人知道可以在Java中使用的变通方法或修复程序或JCIFS的替代方案吗?

  • 在开发环境中,我试图将SMB网络存储映射到Docker,以使其对容器可用,就像共享本地驱动器一样。这意味着,对于整个Docker VM,而不是单个容器。另一个应用程序需要通过SMB访问网络存储,但它位于另一个域中,因此我无法将本地驱动器中的任何内容共享给它。Windows网络驱动器也不能与Docker一起工作。 在Docker启动时,是否有任何方法可以轻松地将网络驱动器映射到Docker?或者任何

  • 我想从docker容器访问Windows文件共享(SMB3),但我不想损害主机的安全性。我读过的所有指南都说明我需要使用标志或功能。 下面是我使用的命令: -t cifs-o用户名='some_account@mydomain.internal',密码='some_password'//192.168.123.123/MyShare /mnt/myshare 其结果是: 无法应用新的功能集。 当我

  • 问题内容: 我有一个v3的撰写文件,其中有3个服务共享/使用相同的卷。在使用群模式时,我们需要创建额外的容器和卷来管理整个集群中的服务。 我打算使用NFS服务器,以便单个NFS共享将直接安装在群集内的所有主机上。 我发现以下两种实现方法,但是它需要在Docker主机上执行额外的步骤- 在主机上使用“ fstab”或“ mount”命令挂载NFS共享,然后将其用作Docker服务的主机卷。 使用Ne

  • 我有一个容器,我想停止,但当我做一个它挂起,永远不会停止它。 我试过正常的和