Как я могу сохранить свои данные в контейнере Docker / Postgres? - PullRequest
0 голосов
/ 21 января 2019

Я знаю, что, вероятно, есть много способов сделать это.То, что я ищу, это способ сделать это, используя (предпочтительно) только мой DockerFile и один контейнер.

Вот мой текущий dockerfile:

FROM postgres:latest
ENV POSTGRES_USER=myuser
ENV POSTGRES_PASSWORD=mypassword

Вот команда, которую я использовал дляпостроить этот контейнер:

docker built -t my_db .

И вот команда, которую я использую для запуска контейнера:

docker run -p 5432:5432 my_db

Я хотел бы, чтобы данные сохранялись в контейнере, есливозможно, но я не понимаю, как или где Postgres хранит свои данные.В другом сообщении о переполнении стека я видел, что postgres будет хранить его по умолчанию в / var / lib / postgresql / data, однако, когда я смотрю в эту папку, я ничего не вижу.Однако я могу убедиться, что postgres работает, потому что я использую клиент под названием teamSQL, и из этого клиента я могу создавать таблицы и вставлять / читать данные.

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

Примечание: это работает в OSx, но я не думаю, что это актуально.

1 Ответ

0 голосов
/ 21 января 2019

Вы должны использовать тома Docker, чтобы при остановке контейнера данные сохранялись на хост-машине, а при повторном запуске контейнера данные подключались к нему

docker volume create pgdata
docker run -p 5432:5432 -v pgdata:/var/lib/postgresql/data my_db
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...