Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用Docker with Vagrant中的编辑器编辑文件(在Mac上)_Macos_Vagrant_Docker - Fatal编程技术网

Macos 使用Docker with Vagrant中的编辑器编辑文件(在Mac上)

Macos 使用Docker with Vagrant中的编辑器编辑文件(在Mac上),macos,vagrant,docker,Macos,Vagrant,Docker,在Docker with Vagrant中使用sublime或其他编辑器编辑文件的最佳方式是什么 我在MacOSX环境下工作,我遵循了Docker官方文档中的步骤 似乎我必须在vagrant环境中使用docker(在Mac docker安装上)。因此,这使我无法用我的升华编辑器编辑我的文件 那么,我如何才能使用原始的bash(在Vagrant和Docker环境之外)编辑我的文件,或者我必须在Vagrant上重新设置所有环境才能实现它 我查过流浪汉的官方文件 在我用ssh连接到vagrant

在Docker with Vagrant中使用sublime或其他编辑器编辑文件的最佳方式是什么

我在MacOSX环境下工作,我遵循了Docker官方文档中的步骤

似乎我必须在vagrant环境中使用docker(在Mac docker安装上)。因此,这使我无法用我的升华编辑器编辑我的文件

那么,我如何才能使用原始的
bash
(在Vagrant和Docker环境之外)编辑我的文件,或者我必须在Vagrant上重新设置所有环境才能实现它


我查过流浪汉的官方文件

在我用ssh连接到vagrant环境
vagrant ssh
之后,转到
cd/vagrant/
并创建一个文件


它应该在docker存储库的根目录中,我在那个里创建了我的流浪者,不是吗?但我找不到它…

代码必须在您的计算机上,并一直共享到docker。这其实很容易做到

首先,您需要将代码共享给vagrant。这是在Vagrant文件中使用
synced_文件夹
选项完成的。例如,如果您的代码位于
/Users/LiJung/code/
中,您可以尝试以下操作:

config.vm.synced_folder "/Users/LiJung/app", "/app", :nfs => true
我们使用NFS是因为主机和虚拟机之间共享文件夹的默认方式(vboxfs)充其量是可疑的

这将使您的代码在VM内的
/app
文件夹中可用

接下来,要运行容器并使用
-v
选项将外部卷装入其中:

docker run -i -t -v /app:/app <yourcontainer> /bin/bash
docker run-i-t-v/app:/app/bin/bash
这将运行一个容器并将VM的
/app
文件夹装载到容器的
/app
文件夹


您现在可以享受您最喜爱的编辑的舒适

在这个问题上,你并不孤单,尽管这可能很难重现。您可以在和上看到报告(可能的解决方法)。当我遇到这个问题时,我刚刚重新启动了虚拟机,文件显示在
/vagrant
文件夹中。

您必须首先将主机卷装载到boot2docker vagrant vm中,然后将vm卷装载到您的容器中,如docker官方文档中的说明所示,

中的更多信息:,我已从中克隆docker repo。如果我在第145行开始使用repo中的设置Vagrant,则该设置被设置为禁用sync folder,那么我是否要手动更改设置?警告:如果您需要对文件权限执行任何特殊操作,您可能会在文件夹共享方面遇到一些问题。
docker run -i -t -v /app:/app <yourcontainer> /bin/bash