Как это влияет на неиспользование томов в моем docker-compose? - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в докере, какой замечательный инструмент!После учебника по Django их документы предоставляют базовую docker-compose.yml, которая выглядит аналогично следующей, которую я создал.

version: '3'

services:
  web:
    build: .
    container_name: web
    command: python manage.py migrate
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./src:/src
    ports:
      - "8000:8000"
    depends_on:
      - postgres
  postgres:
    image: postgres:latest
    container_name: postgres
    environment:
      POSTGRES_USER: my_user
      POSTGRES_PASSWORD: my_secret_pass!
      POSTGRES_DB: my_db
    ports:
      - "5432:5432"

Тем не менее, в каждом отдельном файле docker-compose, который я вижу,добавлено следующее:

volumes:
  - ./postgres-data:/var/lib/postgresql/data

Для чего используются эти тома?Означает ли это, что если я теперь перезапущу свой контейнер postgres, все мои данные будут удалены, но если у меня были тома, то это не так?

Готов ли мой docker-compose.yml к производству?

1 Ответ

0 голосов
/ 29 ноября 2018

Для чего используются эти тома?

Тома сохраняют данные из вашего контейнера на хост Docker.

Это:

volumes:
  - ./postgres-data:/var/lib/postgresql/data

означает, что /var/lib/postgresql/data в вашем контейнере будет сохранено в ./postgres-data на вашем хосте Docker.

То, что прокомментировал @Dan Lowe, является правильным, если вы сделаете docker-compose down без томов, все данные, если ваши контейнеры будутбудут потеряны, но если у вас есть volumes каталогов, и указанные вами файлы будут храниться на вашем хосте Docker

Эти данные на вашем хосте Docker можно увидеть в /var/lib/docker/volumes/<your_volume_name>/_data, даже если ваш контейнер несуществуют больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...