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

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

net use z: \\vm_ip\folder 

在上面的情况下,z:是我用共享文件夹中的内容创build的驱动器。

我怎么能在Mac上映射相同的文件夹?

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

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

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

第2步 – redirectKitematic上的Samba端口

Kitematic是一个平台,可以帮助您在Docker上configuration容器和其他设置。 它可以在这里下载: https : //www.docker.com/products/docker-toolbox 。 您不需要Kitematic来创buildredirectSamba端口的规则,但是,您不会花费2分钟的时间(而是尝试在CLI中试图find这种方法)。

在MacOS上安装Kitematic:

开始Kitematic; select包含您使用Samba共享的文件夹的容器(左侧的面板为Container) Docker面板上的图像

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

现在,我们添加端口137,138,139和445,并将其redirect到本地主机上的相同端口。

第3步 – 在MacOS上安装Samba共享文件夹

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

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

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

所以,注意:

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

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

如果您需要/ Users以外的其他位置,请单击屏幕顶部的鲸鱼图标,select“首选项”,然后单击“文件共享”选项卡。 如果你已经在Mac上挂载了一个samba / cifs共享,你可以在这里添加这个path。