在Windows上的Docker工具箱卷不会刷新容器上的更改

我开始与Windows上的docker,我正在尝试使用卷来pipe理容器中的数据。

我的主机环境是:

  • Windows 8.1
  • Docker工具箱1.8。
  • 虚拟箱5.0.6

我已经使用下面的Dockerfile创build了一个ngnix镜像。

Dockerfile

 FROM centos:6.6

维护者afym

 ENV WEBPORT 80

运行yum -y更新;  yum干净一切
 RUN yum -y install epel-release;  yum干净一切
运行yum -y安装nginx;  yum干净一切
运行回显“守护进程closures”  >> /etc/nginx/nginx.conf

 VOLUME / usr / share / nginx / html

 EXPOSE $ WEBPORT

 CMD [“/ usr / sbin / nginx”]

我使用以下命令创build了一个ngnix容器。

 docker run -d --name nge -v // c / Users / src:/ usr / share / nginx / html -p 8082:80 ng1

 b738fef9cc4d135416a8cca4caf869acf944319b7c3c61129b11f37f9d891598

然后我去我的浏览器,我可以看到网页:

在这里输入图像说明

但是,当我对我的index.html文件进行更改时,它不会在浏览器上刷新

编辑我的文件

在这里输入图像说明

在我的浏览器(ctrl + f5)

在这里输入图像说明

我去了VirtualBox机器来检查我的共享目录选项是否正常。

在这里输入图像说明

然后我用下面的命令检查我的nge容器。

docker检查ng1

Docker检查

在这里输入图像说明

卷的情况如何? 为什么我看不到我的变化?

几天后,我可以find解决scheme。

Windows上的Firstable docker甚至在MAC上使用VirtualBox上的boot2docker实例。

在MAC上

在这里输入图像说明

在Windows上

在这里输入图像说明

接下来,官方docker的文档说:

docker工人数量

 Docker机器尝试自动共享您的/ Users(OS X)或C:\ Users(Windows)目录

但是,find一个解决scheme后,我决定改变默认的c /用户到另一个path只为了维持秩序。 考虑到这一点,我做了以下步骤:

  • 定义您自己的工作区目录。 在我的情况下是/ e / arquitectura (可选。如果你想要你可以使用默认的path是/ c / Users
  • validation虚拟机上的configuration(在默认机器上,转至>configuration>共享目录

在这里输入图像说明

  • join到默认机器并使用别名装载目录
   sudo mount -t vboxsf alias-name-virtualbox some-path-in-boot2docker

   #在我的情况下(boot2docker实例)
   $ cd
   $ mkdir arquitectura
   $ sudo mount -t vboxsf arquitectura / arquitectura 
  • 最后创build一个新的容器或重新启动一个现有的容器,如果你没有改变c / user /path
 #在我的情况(docker客户端)
 $ docker run -d --name nge -v // arquitectura / src:/ usr / share / nginx / html -p 8081:80 ng1

现在起作用了。

在这里输入图像说明