Назад | Перейти на главную страницу

Docker compose не использует повторно предполагаемые тома анонимного хоста при воссоздании контейнера

У меня есть контейнер 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 в новом временном томе при каждом запуске контейнера. Вот что произойдет, если вы укажете путь к контейнеру без пути к хосту.

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