2016-02-03 1 views
1

Я бегу докер на окнах 10 с помощью этой команды:Docker на окнах: данные в смонтированном томе не обновляется

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

Внутри Пользователи/ТШ/Докер папки У меня есть простой index.html файл :

<h1>Hello!</h1> 

Он работает отлично, когда я указываю мой браузер на окнах в VirtualBox IP можно увидеть веб-страницу с «Hello!» отображается. Но когда я изменить содержимое index.html к чему-то вроде:

<h1>Hello from docker!</h1> 

Веб-страница все еще показывает мне старый «Привет!» текст.

Возможно ли это, когда я изменяю index.html Данные на веб-странице также изменены?


Upd:

docker run -it -v //c/Users/tsh/docker:/usr/share/nginx/html -p 80:80 nginx bash 
[email protected]:/# cd /usr/share/nginx/html 
[email protected]:/usr/share/nginx/html# cat index.html 
<h1>Hello from docker!</h1> 
[email protected]:/usr/share/nginx/html# 

Container увидеть новые данные <h1>Hello from docker!</h1> но страница все еще показывает старый Здравствуйте!

ответ

0

Кажется, что есть некоторые проблемы с окнами. Пожалуйста, попробуйте обходной путь, предложенный в Github выпуске https://github.com/docker/docker/issues/12590

Использование двойных ведущее хлещет по пути:

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

Вы можете отлаживать ситуацию следующим образом: имени вашего контейнера как «mynginx» с помощью приведенная выше обновленная команда пуска

Затем вы можете войти в контейнер, используя следующую команду: docker exec -it mynginx /bin/bash

Теперь вы должны находиться внутри контейнера, и вы можете проверить содержимое смонтированного файла с помощью:

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

Если файл здесь показывает изменения, и по-прежнему ваш браузер показывает старый файл, то есть файл кэшируется где-то в цепочке. Nginx/браузер. Если он хранится в браузере, вы можете проверить его, открыв окно инкогнито или нажав Ctrl + F5.

+0

Проблема все еще существует. Даже если я изменяю, файл и перезагрузка веб-страницы контейнера все еще отображается старым текстом, который был до перезагрузки контейнера ( – tsh

+0

Можете ли вы ввести контейнер и проверить, видно ли изменение? Обновлен ответ с помощью шагов – Phani

+0

Изменения видны внутри контейнера , но firefox в приватном режиме все еще показывает старый текст. Когда я тестировал это решение, я обнаружил странное поведение, если у меня есть это в моем ** index.html **: '

Hello from docker!

' В браузере у меня есть: ** Привет от докера! ** как и ожидалось. Но когда я меняю ** index.html ** на: '

Здравствуйте

' В браузере у меня есть: ** Привет от ** Существует определенно некоторое кеширование происходит , но где и как я могу отключить его? – tsh

1

Эта проблема, похоже, связана с кэшированием Virtualbox. Я также столкнулся с this problem recently editing CSS, и мне удалось создать «обходной путь», сбросив изображение в Virtualbox. Но я называю это обходным путем только в неопределенном смысле, так как не очень полезно полностью перезагружать образ boot2docker каждый раз, когда вы редактируете HTML-документ.

0

У меня была та же проблема, но с Apache. VirtualBox на Windows и Centos с httpd и php на докере. Проблема исправлена ​​путем изменения httpd.конф параметр

# 
# 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 

EnableSendfile к от потому

... но должен быть выключен при обслуживании от сетевых файловых систем, монтаж ...

Отправка файлов все еще работает хорошо. Надеюсь, это поможет кому-то.

 Смежные вопросы

  • Нет связанных вопросов^_^