Как импортировать БД Postgres в контейнер docker?

Чтобы импортировать базу данных PostgreSQL в контейнер Docker, вам понадобятся следующие шаги:

  1. Создайте Docker-образ, который будет содержать PostgreSQL. Для этого вам нужно создать файл Dockerfile в папке проекта. Вот пример базового Dockerfile:
FROM postgres:latest

ENV POSTGRES_USER myuser
ENV POSTGRES_PASSWORD mypassword
ENV POSTGRES_DB mydb

COPY init.sql /docker-entrypoint-initdb.d/

В этом файле мы указываем использование официального образа Postgres, а также определяем несколько переменных окружения, таких как имя пользователя, пароль и имя базы данных. Также мы копируем файл init.sql внутрь контейнера.

  1. Создайте файл init.sql, который будет содержать SQL-запрос для импорта базы данных. В этом файле вы можете использовать любые необходимые SQL-запросы для создания таблиц, вставки данных и т.д.

Пример init.sql:

CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL
);

INSERT INTO customers (name, email)
VALUES ('John Doe', 'john@example.com');
  1. Постройте Docker-образ, выполнив следующую команду в командной строке:
docker build -t my-postgres .
  1. Запустите контейнер на основе созданного образа, используя следующую команду:
docker run -d -p 5432:5432 --name my-postgres-container my-postgres

В этой команде мы привязываем порт 5432 контейнера к порту 5432 на хосте и задаем имя контейнера.

  1. Теперь вы можете подключиться к базе данных PostgreSQL, используя тот же хост и порт, что и при запуске контейнера. Например, если вы используете инструмент командной строки psql, вы можете выполнить следующую команду:
psql -h localhost -U myuser -d mydb

Это подключится к базе данных mydb с указанным именем пользователя.

Теперь вы можете использовать команды SQL для выполнения запросов к вашей базе данных PostgreSQL в контейнере Docker.