Pull to refresh

Запускаем PostgreSQL в Docker: без воды

Level of difficultyEasy

Всем привет!

Статья для тех кто только вступает на путь контейнеризации и ещё не понимает манул разработчиков, просто хочет запустить образ базы с сохранением её настроек и набором данных, ну и конечно использовать при разработке. Здесь вы не найдёте настройки ямлов (если надо то ознакомьтесь с данным трудом) и заумных разъяснений.

Для тех кто в ТАНКЕ, данный вариант должен использоваться только в целях разработки и тестирования. На проде так не делайте!!!

Упустим момент установки Docker и перейдём к командам (их будет всего 2))), я юзаю Убунту поэтому команды и пути будут под этой ось и в принципе убрав sudo и у вас будет счастье.

Для запуска образа PostgreSQL введите:

sudo docker run --rm --name postgres-dev -p 5432:5432 -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=mypass -e POSTGRES_DB=habrdb -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data -d postgres

, где

1.

--rm

ключ активирует автоматическое удаление контейнера и связанную с ним файловую систему после остановки контейнера. Полезный ключ для экономии дискового пространства

2.

--name

задает имя контейнера, в нашем случае postgres-dev

3.

-e POSTGRES_USER

задает name для пользователя Postgres, в нашем случае admin. Если его не задать, то применится имя по умолчанию postgres

4.

-e POSTGRES_PASSWORD

задает пароль для пользователя Postgres. Обязательный параметр.

5.

-p 5432:5432

пробрасывает порт по умолчанию 5432. Первое значение порт на локальной машине (есть смыл изменять если у вас установлен PostgreSQL в системе вне Docker, значит порт 5432 занят.), второй порт внутри контейнера.

6.

-e POSTGRES_DB

задает имя базы данных

7.

-v $HOME/docker/volumes/postgres:/var/lib/postgresql/data

ключ создает точку монтирования каталога $HOME/docker/volumes/postgres на вашем ПК к каталогу /var/lib/postgresql/data внутри контейнера. Если ходите чтобы база сохранялась при остановке контейнера.

8.

-d postgres

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

Скорее всего вы не захотите админить базу из командной строки, то тогда вам потребуется развернуть графический инструмент управления pgAdmin >>

sudo docker run --rm --name pgadmin-dev -e PGADMIN_DEFAULT_EMAIL=myMail@mail.net -e PGADMIN_DEFAULT_PASSWORD=mypass -p 82:80 -d dpage/pgadmin4

, где

1.

--rm

ключ активирует автоматическое удаление контейнера и связанную с ним файловую систему после остановки контейнера. Полезный ключ для экономии дискового пространства

2.

--name

задает имя контейнера, в нашем случае pgadmin-dev

3.

-e PGADMIN_DEFAULT_EMAIL

ваш email или не ваш, под ним вы будите заходить в pgAdmin

4.

-e PGADMIN_DEFAULT_PASSWORD

ваш пароль, тот же, что вы использовали при запуске Postgres.

5.

-p 82:80

пробрасывает порт по умолчанию 82. Первое значение порт на локальной машине (есть смыл изменять если порт 82 занят.), второй порт внутри контейнера.

6.

-d page/pgadmin4

образ PgAdmin.

Далее в браузере переходим по адресу http://localhost:82/

Во вкладке Connection (соединение) введите:

Host name / address - 172.17.0.2 или, если этот IP не подходит, узнайте его с помощью команды: docker inspect posgres-dev от контейнера с Postgres.

Port - 5432 или ваш порт, на который вы запустили контейнер.

Username - по умолчанию при запуске суперпользователь: postgres, если вы не задали переменную POSTGRES_USER.

Password - пароль

Пользуйтесь)

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.