首页 > 解决方案 > 从 Docker 容器中运行的 Python 代码访问 Windows CIFS 共享

问题描述

我正在尝试从将在 Docker 容器中运行的 Python 代码访问多个 Windows CIFS 共享。我已经看到有多个 SMB 库pysmbsmbprotocol声称它们可以用于访问 CIFS 共享,但我还没有设法让它工作,也没有在网上看到一个用于访问的示例CIFS 共享。

我知道一个解决方案是将共享挂载到主机上并将其挂载到容器中,但如果可能的话,我宁愿避免这种情况,因为代码需要访问多个共享,并且当容器时并非所有共享都被知道开始。

我错过了什么吗?关于如何从运行在 Linux 上的 Python 代码访问 CIFS 共享,是否有一个好的方法或一个很好的在线示例?(我知道在 Windows 上您可以简单地打开该文件夹,但我需要它在 Linux 上工作)。

标签: pythonlinuxdockersmbcifs

解决方案


已知不工作的是mount对容器内部的调用,除非容器以特权启动。然而,客户端代码也可以连接到 CIFS 驱动器,而无需先挂载目录(例如,对于 Java,它是jcifs-ng)。

了解您使用的库在内部是如何工作的。如果它可以直接连接继续。否则,您也可以添加smbclient到您的容器并调用它来访问 CIFS 端的文件。


推荐阅读