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

时间:2015-10-26 17:37:50

标签: docker boot2docker dockerfile dockerhub

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

我的主机环境是:

  • Windows 8.1
  • Docker Toolbox 1.8。
  • Virtual Box 5.0.6

我使用以下Dockerfile创建了一个ngnix镜像。

Dockerfile

FROM centos:6.6

MAINTAINER afym

ENV WEBPORT 80

RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install nginx; yum clean all
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

VOLUME /usr/share/nginx/html

EXPOSE $WEBPORT

CMD [ "/usr/sbin/nginx" ]

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

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

b738fef9cc4d135416a8cca4caf869acf944319b7c3c61129b11f37f9d891598

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

enter image description here

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

编辑我的文件

enter image description here

在我的浏览器上(ctrl + f5)

enter image description here

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

enter image description here

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

docker inspect ng1

Docker检查

enter image description here

卷发生了什么?为什么我看不到我的更改?

1 个答案:

答案 0 :(得分:2)

几天后我就找到了解决方案。

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

图表

在MAC上

enter image description here

在Windows上

enter image description here

接下来,官方码头工人的文档说:

docker volume

Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory

然而,在找到解决方案之后,我决定将默认的c / Users更改为另一个路径,仅用于保持订单。考虑到这一点,我做了以下步骤:

  • 定义您自己的工作区目录。在我的情况下是 / e / arquitectura (可选。如果你想要你可以使用默认路径 / c / Users
  • 验证虚拟机上的配置(在默认计算机中转到>配置>共享目录

enter image description here

  • 加入默认计算机并使用别名
  • 挂载目录
  sudo mount -t vboxsf alias-name-virtualbox  some-path-in-boot2docker

  # In my case (boot2docker instance)
  $ cd
  $ mkdir arquitectura
  $ sudo mount -t vboxsf arquitectura /arquitectura 
  • 如果您尚未更改c / user / path
  • ,请最后创建一个新容器或重新启动现有容器
# In my case (docker client)
$ docker run -d --name nge -v //arquitectura/src:/usr/share/nginx/html -p 8081:80 ng1

现在可行。

enter image description here