Обновление образа в Docker
Обновление образа
подтягивает тот же тег заново
и оставляет файлы базы
в томе.
Меняется слой программы,
а каталог данных
на /data/db
остаётся подключённым
как прежде.
В описании фиксируют
mongo:8.3,
чтобы версия не прыгала
неожиданно.
Перенос тома
на другую мажорную ветку
образа здесь не делают -
работают с тем же тегом
и тем же dbdata.
Сервис db
без пароля
и с томом dbdata
выглядит так:
services:
db:
image: mongo:8.3
volumes:
- dbdata:/data/db
volumes:
dbdata:
После первого подъёма
кладут документ
со словом hello
в базу app:
docker compose up -d
docker compose exec db mongosh --quiet app --eval "db.notes.insertOne({ text: 'hello' })"
Сначала подтягивают образ
командой docker compose pull,
затем снова поднимают проект
в фоне через
docker compose up
с флагом -d.
Том dbdata
не удаляют:
docker compose pull
docker compose up -d
После подъёма документ
со словом hello
в базе app
на месте -
файлы в томе пережили
обновление слоя образа.
Запишите документ в базу pins на томе rev, подтяните образ mongo:8.3 и снова поднимите сервис без удаления тома.
Убедитесь, что документ в pins на месте после второго подъёма.