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

Обновление образа в Docker

Обновление образа подтягивает тот же тег заново и оставляет файлы базы в томе. Меняется слой программы, а каталог данных на /var/lib/mysql остаётся подключённым как прежде.

Тег latest здесь не используют: в описании фиксируют mysql:9.7, чтобы версия не прыгала неожиданно. Перенос тома на другую мажорную ветку образа в этом уроке не разбирают - работают с тем же тегом и тем же dbdata.

Сервис db с паролем 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 и проверяют, что она на месте:

docker compose up -d docker compose exec db mysql -uroot -pdemo app -e "CREATE TABLE notes (id INT PRIMARY KEY)" docker compose exec db mysql -uroot -pdemo app -e "SHOW TABLES LIKE 'notes'"

Сначала подтягивают образ командой docker compose pull, затем снова поднимают проект в фоне через docker compose up с флагом -d. Том dbdata не удаляют:

docker compose pull docker compose up -d

После подъёма таблица notes в базе app на месте - файлы в томе пережили обновление слоя образа.

Создайте таблицу pins на томе rev, подтяните образ mysql:9.7 и снова поднимите сервис без удаления тома.

Убедитесь, что pins видна в базе app после второго подъёма.

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