Использование тома докера с postgresql для проверки его сохранения в файловой системе hosts - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь заставить работать тома докера.

Я определил том в моем Dockerfile следующим образом:

version: "3"

services:
  redis:
    image: redis:alpine
    ports:
    - "6379:6379"

  db:
    image: postgres:9.4
    #container_name: db
    volumes:
      - "db-data:/var/lib/postgresql/data"


volumes:
  db-data:

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

Я просто хочу проверить / убедиться, что мои данные сохраняются в файловой системе хоста, поэтому, если я запускаю / останавливаю докер, когда он перезапускает, он читает из файла базы данных на хосте.

1 Ответ

0 голосов
/ 08 сентября 2018

Эта конструкция сохраняет данные в именованном томе ; если вы посмотрите под /var/lib/docker/volumes как root, вы сможете увидеть его там (хотя перебирать в /var/lib/docker обычно не рекомендуется; и я считаю, что это одна из вещей, когда Docker Compose изменит имя, чтобы попытаться сделать его уникальным).

Если вы хотите, чтобы данные сохранялись в каталоге хоста, измените объявление тома, чтобы явно иметь относительный или абсолютный путь. Вам не понадобится явное объявление тома, и для этого вы можете полностью удалить блок томов. Это оставило бы вас с docker-compose.yml, который выглядит как:

version: "3"
services:
  db:
    image: postgres:9.4
    volumes:
      - "./db-data:/var/lib/postgresql/data"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...