【发布时间】:2016-09-26 07:05:05
【问题描述】:
所以我的问题与将主机目录从我的 osx macbook 挂载到机器内运行的容器中有关。
在我以前的公司中,他们使用 devops,我们使用带有 virtualbox 的 docker,我注意到他们使用 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
而我的 docker compose 是这样的:
version: "2"
services:
nginx_php:
build: docker/nginx
ports:
- "10000:80"
volumes:
- .:/var/test
现在,当我执行 docker-compose up,然后使用“docker exec -it bash”进入 docker 容器时,我可以列出目录并找到 /var/test,它包含一些东西,但不是我所期望的。
例如,在“。”我在 docker compose 中的 volumes 语句中使用的目录,我确实有一个名为 projects 的目录,并且在 docker 容器的 /dev/test 中,我确实找到了项目。
但是,我没有找到“堆栈”,它只是一个旧的遗留目录,不管它是什么,但我没有找到它,所以它似乎已经挂载了“。”但它并没有显示所有内容,只是显示某些内容。
所以我更进一步,在此过程之前创建了一个名为“angi”的目录,如果我列出项目的内容,我可以看到我预期的 angi 目录。
更进一步,我创建了一个名为“monkey”的目录,但是当我重建容器并再次启动它们时,我可以看到“/projects/angi”,但看不到“/projects/monkey”
所以 wtf....就像它正在安装文件系统的一半,或者有选择地向我展示某些部分,或者类似的东西,我现在不确定如何安装主机目录,因为我没有得到我期望的结果。
有人知道可能出了什么问题吗?
【问题讨论】:
-
我没有找到解决问题的方法,除了停止使用旧的 docker 并改用 Docker for Mac 之外,我已经在这个 github 中描述了这个问题:github.com/zchee/docker-machine-driver-xhyve/issues/136
标签: macos docker docker-compose dockerfile docker-machine