У меня есть контейнер Ansible, и когда я разработал файл для создания докеров, создайте контейнер.
version: '2'
services:
ansible_tower:
image: ybalt/ansible-tower:latest
ports:
- "333:443"
volumes:
- ./certs:/certs
- /var/lib/postgresql/9.4/main
- ./backup:/home/backup
privileged: true
container_name: ansible_tower
restart: always
но когда я удаляю контейнер и воссоздаю контейнер, все данные тома теряются. (Данные PostgreSQL будут потеряны.) После небольшой отладки я обнаружил, что тома хоста переназначаются на вновь созданные тома при воссоздании контейнера. (Меняется имя безымянного тома хоста) Но это не то, что ожидалось. Я думал, что тома хоста будут повторно использованы в случае воссоздания контейнера. Что я здесь пропустил. Из-за этого все данные будут потеряны.
В вашем docker-compose.yml указан только путь для создания данных PostgreSQL в новом временном томе при каждом запуске контейнера. Вот что произойдет, если вы укажете путь к контейнеру без пути к хосту.
Если вы хотите, чтобы данные были постоянными, вы должны указать источник для хранения данных на хосте: либо путь, либо именованный том.