2016-09-26 37 views
1

所以我的问题与将osx macbook上的主机目录挂载到机器内运行的容器有关。docker用xhyve在osx上组装mount主机目录

在我以前的公司中,他们使用了devops,我们使用的是docker和virtualbox,我注意到他们使用VBoxManage将目录挂载到Docker机器中,然后将这些文件夹挂载到容器中。

然而,现在我没有使用VirtualBox,但xhyve虚拟机我想知道我怎么可以访问我的容器内部主机目录。

我想举办数据库和代码库,收留他们nginx的容器内,然后当代码是在主机,使用IDEA编辑代码,然后给了我一个工作平台。

但是,只要我按照我觉得应该工作的指示,它似乎并没有正常工作。

例如,我的nginx的配置是这样的:

FROM nginx:latest 
RUN rm /etc/nginx/conf.d/default.conf 
ADD ./default.conf /etc/nginx/conf.d/ 
EXPOSE 80 
EXPOSE 443 

我的码头工人的撰写是这样的:

version: "2" 
services: 
    nginx_php: 
    build: docker/nginx 
    ports: 
     - "10000:80" 
    volumes: 
     - .:/var/test 

现在,当我做码头工人,组成了,然后壳进入使用“docker exec -it bash”的码头容器我可以列出目录并找到/ var/test,它包含SOMETHING,但不是我期望的。

例如,在“。”目录我在我的docker撰写的volume语句中使用,我有一个名为projects的目录,在docker容器的/ dev/test中,我找到了项目。

不过,我不觉得“堆”这仅仅是一个古老的遗留目录,不事关它是什么,但我不觉得它,所以它似乎已安装“”但它并没有显示所有的东西,只是某些东西。

所以我把这个一步,我此过程之前创建了一个名为“ANGI”目录,如果我列出的项目内容,我可以看到ANGI目录如我所料。

所以再进一步,我创建了一个名为“猴子”的目录,但是当我重建容器并重新启动时,我可以看到“/ projects/angi”,但是我看不到“/ projects/monkey “

所以跆拳道....它喜欢它挂载文件系统的一半,或选择性地显示我的某些部分,或类似的东西,我不确定如何挂载主机目录,因为我没有得到我期望的结果。

有人知道什么可能会出错吗?

+0

我没有找到解决我的问题,除了停止使用旧的码头和使用Docker for Mac,我已经描述了这个github中的问题:https://github.com/zchee/docker-machine -driver-xhyve /问题/ 136 –

回答

1

我在同一条船上。我已经安装了docker/docker-machine/docker-machine-driver-xhyve(通过自制软件)并且有同样的问题。

我认为发生的事情是,你正在创建主机上的音量 - 在这种情况下是泊坞窗机,而不是你的MAC OS主机。我认为还需要再跳一次......这是怎么回事,我不确定。

但我可以确认,使用花园品种清洁泊坞窗应用程序照顾这个给你。

1

正如Daniel指出的那样,MacOS Docker容器卷不是挂载到主机MacOS,而是挂载到中间VM。

因此,有两个选项

您可以复制的内容,你需要虚拟机使用(如果你的虚拟机名为default)

docker-machine scp [localfiles] default:./ 

或者,您可以通过使用sshfs的做额外的步骤半自动:

docker-machine mount default:[/mountpoint] [localpath] 

第二个选项将需要sshfs,它可以从brew中获得

brew tap caskroom/cask 
brew cask install osxfuse 
brew install sshfs 

更多的细节在https://docs.docker.com/machine/reference/mount/

也要小心,因为它是单向同步选项。如果你需要从机器中获取某些东西,那么一定要把它抄回来。

相关问题