РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcNdMyDt 34 of 39 menu
◀ ▶

Данные MySQL в Docker

Данные MySQL лежат в томе, и новый контейнер сервера их не стирает. Файлы базы пишутся в хранилище dbdata, а не только в слой работающей копии. Остановка проекта без удаления тома оставляет таблицы на месте.

Сервис db на mysql:9.7 с паролем root demo монтирует том dbdata в /var/lib/mysql:

services: db: image: mysql:9.7 environment: MYSQL_ROOT_PASSWORD: demo volumes: - dbdata:/var/lib/mysql volumes: dbdata:

После фонового подъёма создадим таблицу notes через клиент внутри сервиса:

docker compose up -d

Строка со словом hello:

docker compose exec db mysql -uroot -pdemo -e "CREATE TABLE notes (id INT PRIMARY KEY AUTO_INCREMENT, body VARCHAR(255)); INSERT INTO notes (body) VALUES ('hello');"

Контейнеры убирают без флага удаления томов:

docker compose down

Новый фоновый подъём снова подключит dbdata. Чтение первой строки из notes показывает текст hello:

docker compose up -d

Проверка внутри сервиса:

docker compose exec db mysql -uroot -pdemo -e "SELECT body FROM notes LIMIT 1;"

Подключите том ledger к /var/lib/mysql для сервиса db с паролем root demo и сохраните строку в таблице marks.

Уберите контейнеры без удаления тома, поднимите проект снова и убедитесь, что строка в marks на месте.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить