Попробуйте сначала сменить монтирование на локальные папки и посмотреть, решит ли это вашу проблему:
version: '2'
volumes:
nextcloud:
db:
services:
db:
...
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_PASSWORD=***
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
...
volumes:
- ./nextcloud:/var/www/html
restart: always
Если это так, проверьте правильность удаления томов с помощью docker-compose down
. Запустите docker volume ls
. Если они все еще сохраняются, удалите их вручную и перезапустите контейнеры с томами.
Относительно разницы между подключением к тому (db: / var / lib / mysql) и подключением к пути к хосту (./db:/var/lib/mysql):
В первом случае это том , управляемый Docker . Он предназначен для настойчивости, но добраться до файлов немного сложнее. Во втором случае это путь на хосте , который значительно упрощает получение сохраненных файлов. Я рекомендую запустить «docker-compose config» для обеих ситуаций и увидеть разницу в том, как docker-compose внутренне преобразует оператор.