如何在 Mac 上从我的容器映射共享文件夹?



我有一个文件夹内部的Docker容器,通过Samba共享。我可以在 Windows 上映射此文件夹,而不会运行以下内容:

net use z: \vm_ipfolder

在上面的例子中,z: 是我使用共享文件夹中的内容创建的驱动器。

如何在 Mac 上映射同一文件夹?

步骤 1 - 使用 Samba 共享文件夹

您需要做的第一件事是让包含要共享的文件(项目,源代码,设置等)的文件夹在MacOS上可见。

为此,您需要使用 Samba 共享 Docker 容器上的文件夹。我不会在这里描述如何做到这一点,因为互联网上有很多资源。

步骤 2 - 重定向 Kitematic 上的 Samba 端口

Kitematic 是一个平台,可帮助您在 Docker 上配置容器和其他设置。可以在这里下载:https://www.docker.com/products/docker-toolbox。您不需要 Kitematic 来创建重定向 Samba 端口的规则,但是,您不会为此花费 2 分钟(而是尝试在 CLI 中发现如何做到这一点)。

在MacOS上安装Kitematic :

开始风筝; 选择包含您使用 Samba 共享的文件夹的容器(左侧面板,标题为"容器"); Docker上的面板图像

单击"设置"选项卡,然后选择下面称为"主机名/端口"的选项卡 Docker 上的"设置"面板的图像

现在,我们添加端口 137、138、139 和 445,并将其重定向到 localhost 上的同一端口。

步骤 3 - 在 MacOS 上挂载 Samba 共享文件夹

在MacOS上编辑文件所需的最后一件事就是在MacOS上映射Samba上共享的文件夹(在Docker容器内)。要映射它,请打开终端并运行以下命令:

$ mount_smbfs //guest@localhost:/SharedFolderOnSamba source/

我们正在做的是使用方法mount_smbfs,告诉我们将使用用户来宾连接到文件夹 SharedFolderOnSamba 中的@localhost,然后,我们将在 MacOS 上终端会话的当前目录中的源/文件夹中映射(创建一个新驱动器)。

所以,要注意:

您可以使用任何其他用户来代替来宾; 您必须有一个源/文件夹或定义另一个将使用的文件夹; SharedFolderOnSamba 必須改為您使用 Samba 共享的相當位的資料夽名。要确认文件夹的名称,请转到/etc/samba/并打开 smb.conf 并按您共享的文件夹进行搜索。

如果您使用的是 Docker for Mac,则 mac 中的/Users 文件夹已装载到 Docker for Mac 应用程序运行的虚拟机内。它可以通过 VM 中的/Users 进行访问。这意味着你可以这样做:容器的/文件夹中docker run -v /Users/some/path:/folder ...将意味着 vm 中的/Users/some/path,它映射回 mac 的/Users/some/path。

如果您想要/Users 以外的其他位置,请单击屏幕顶部的鲸鱼图标,选择首选项,然后单击"文件共享"选项卡。如果您在 Mac 上的某个位置安装了桑巴/cifs 共享,您可以在此处添加该路径。

最新更新