windows上的Docker:装入卷中的数据不';t更新

windows上的Docker:装入卷中的数据不';t更新,docker,boot2docker,Docker,Boot2docker,我使用以下命令在windows 10上运行docker: docker run -d -v /c/Users/tsh/docker:/usr/share/nginx/html -p 80:80 nginx 在Users/tsh/docker文件夹中,我有一个简单的index.html文件: <h1>Hello!</h1> 你好! 它工作得非常好,当我将windows上的浏览器指向virtualbox IP时,我可以看到显示“Hello!”的网页。 但当我将index

我使用以下命令在windows 10上运行docker:

docker run -d -v /c/Users/tsh/docker:/usr/share/nginx/html -p 80:80 nginx
Users/tsh/docker文件夹中,我有一个简单的index.html文件:

<h1>Hello!</h1>
你好!
它工作得非常好,当我将windows上的浏览器指向virtualbox IP时,我可以看到显示“Hello!”的网页。 但当我将index.html的内容更改为类似以下内容时:

<h1>Hello from docker!</h1>
码头工人你好!
该网页仍然向我显示旧的“Hello!”文本

当我更改index.html时,网页上的数据是否也会更改


Upd:

docker run-it-v//c/Users/tsh/docker:/usr/share/nginx/html-p 80:80 nginx bash
root@ae5fc6b6126a:/#cd/usr/share/nginx/html
root@ae5fc6b6126a:/usr/share/nginx/html#cat index.html
码头工人你好!
root@ae5fc6b6126a:/usr/share/nginx/html#

容器查看docker提供的新数据
您好但页面仍然显示旧的你好

windows路径似乎存在一些问题。请尝试Github问题中建议的解决方法

在路径上使用双前导斜杠:

docker run-d-v--name mynginx//c/Users/tsh/docker:/usr/share/nginx/html-p 80:80 nginx

您可以按如下方式调试您的情况: 使用上面更新的run命令将容器命名为“mynginx”

然后,您可以使用以下命令进入容器:
docker exec-it mynginx/bin/bash

现在,您应该在容器中,在那里您可以使用以下方法验证装载文件的内容:

cat/usr/share/nginx/html/index.html


如果此处的文件显示的是您的更改,而您的浏览器仍显示的是旧文件,则表示该文件已缓存在链中的某个位置。Nginx/browser。如果缓存在浏览器中,则可以通过在“匿名”窗口中打开或按Ctrl+F5进行检查。

此问题似乎与Virtualbox缓存有关。我还遇到了一个问题,我能够通过在Virtualbox中重置图像来创建一个“解决方案”。但是,我只是在模糊的意义上称之为解决方法,因为每次编辑HTML文档时都必须完全重新启动boot2docker映像不是很有用。

我也遇到过同样的问题,但使用Apache。Windows和Centos上的VirtualBox,docker上的httpd和php。通过更改httpd.conf参数解决了此问题

#
# EnableMMAP and EnableSendfile: On systems that support it, 
# memory-mapping or the sendfile syscall may be used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted 
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile off
启用发送文件关闭,因为

…但从网络装载的文件系统提供服务时必须关闭


发送文件仍然有效。希望这能帮助别人。

问题仍然存在。即使我进行了更改,文件和重新启动容器网页仍然显示在容器重新启动之前的旧文本(你能进入容器并检查更改是否可见吗?用stepsChange更新的答案在容器内可见,但firefox在私有模式下仍然显示旧文本。当我测试此解决方案时,我发现奇怪的行为,如果我在index.html:
docker你好!
在浏览器中我有:docker你好!例如期待。但当我在浏览器中将index.html更改为:
Hello
时,我有:Hello from肯定有一些缓存正在进行,但是在哪里以及如何禁用它?尝试使用vi编辑器从容器内更改文件。如果更改反映了,则与docker和windows互操作性有关。如果es在浏览器中不可见,那么您的浏览器缓存可能会受到怀疑。它也可能来自nginx,但我严重怀疑nginx不尊重已更改的文件。谢谢,从容器中更改文件,在浏览器中可见。您知道windows中的什么会导致此问题吗?
#
# EnableMMAP and EnableSendfile: On systems that support it, 
# memory-mapping or the sendfile syscall may be used to deliver
# files.  This usually improves server performance, but must
# be turned off when serving from networked-mounted 
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile off