Как импортировать БД 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 внутрь контейнера.

2. Создайте файл 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', '[email protected]');

3. Постройте Docker-образ, выполнив следующую команду в командной строке:

docker build -t my-postgres .

4. Запустите контейнер на основе созданного образа, используя следующую команду:

docker run -d -p 5432:5432 --name my-postgres-container my-postgres

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

5. Теперь вы можете подключиться к базе данных PostgreSQL, используя тот же хост и порт, что и при запуске контейнера. Например, если вы используете инструмент командной строки psql, вы можете выполнить следующую команду:

psql -h localhost -U myuser -d mydb

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

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