К одному из docker-контейров (с PHP) примонтирована локальная папка w:\src, доступно чтение/запись.
в docker-compose.yml монтируется так:
...
volumes:
- ./:/usr/share/nginx/html/
...
docker inspect говорит:
...
{
"Type": "bind",
"Source": "W:\\src",
"Destination": "/usr/share/nginx/html",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
...
Иногда внутри контейнера Docker перестают появляться изменения файлов, если они сделаны извне контейнера (в хост-системе).
Если файлы менять внутри контенера — то в хост системе изменения сразу видны.
См. видео:
https://youtu.be/GtYA4kmkTGE
1. слева примонтированный каталог в хост-системе, по середине - контейнер докера, справа - редактируется файл
2. вначале каталог пуст, в контейнере
ls -la показывает что файлов нет
3. в текстовом редакторе создаём файл
test.123 с содержимым
123
4. в каталоге хост системы он появился, в контейнере
ls -la говорит что ничего нет,
cat test.123 тоже ничего не выводит
5. добавляем содержимое в файл test.123, пробуем
cat test.123 и внезапно в контейнере уже выводится содержимое файла, но ls -la по прежнему говорит, что файлов в каталоге нет
6. снова меняем содержимое файла test.123 — в контейнере
cat test.123 говорит, что файл не поменялся.
и т.д.
Иногда такое лечится перезапуском контейнера, иногда перезапуском Docker Engine, иногда это не помогает.
Иногда начинает работать в обе стороны нормально, иногда опять перестаёт синхронизироваться.
Почему так?