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

时间:2017-06-06 08:05:30

标签: macos docker

我有一个文件夹内部是一个通过Samba共享的Docker容器。我可以在Windows上映射此文件夹而不会出现类似以下问题:

net use z: \\vm_ip\folder

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

第2步 - 在Kitematic上重定向Samba端口

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

在MacOS上安装了Kitematic:

启动Kitematic; 选择包含使用Samba共享的文件夹的容器(左侧面板,标题为Container); 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上终端会话的currenct目录的源/文件夹中。

所以,请注意:

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

答案 1 :(得分:0)

如果您使用的是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上的某处安装了samba / cifs共享,则可以在此处添加该路径。