Файл дампа на хосте в Docker
Файл дампа на хосте
сохраняет этот текст
в папке проекта,
а не только в окне терминала.
Копию можно открыть редактором
и хранить рядом
с compose.yaml.
Сервис db на mysql:9.7
с паролем demo,
базой app
и томом dbdata
описывают так же,
как при снятии дампа
в терминал:
services:
db:
image: mysql:9.7
environment:
MYSQL_ROOT_PASSWORD: demo
MYSQL_DATABASE: app
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
После фонового подъёма
и таблицы notes
в базе app
запускают снятие дампа
с перенаправлением вывода
на компьютере в dump.sql:
docker compose up -d
docker compose exec db mysql -uroot -pdemo app -e "CREATE TABLE notes (id INT PRIMARY KEY)"
docker compose exec db mysqldump -uroot -pdemo app > dump.sql
Знак > обрабатывает
оболочка на хосте:
файл dump.sql
появляется в каталоге проекта,
а не внутри контейнера.
Команда exec
лишь печатает поток наружу,
а запись на диск делает
терминал на компьютере.
Сохраните текст базы archive с таблицей boxes в файл backup.sql в папке проекта на хосте.
Проверьте, что backup.sql лежит рядом с описанием compose, а не в файловой системе контейнера.