Install and connect PostgreSQL with Docker container

Рассмотрим установку Docker и запуск PostgreSql из docker контейнера. PostgreSql это объектно-реляционная система управления базами данных. В последнее время получила большое распространение в использовании. Docker как всегда выручает, и за пару минут у нас готовый инстанс нужной Datebase.

Документация Docker. Документация PostgreSql.

Использовал:

Docker PostgreSQL Mac OS

Необходимо выполнить:
– Установка Docker на MacOs;
– Развертывание образа PostgreSQL;
– Создать БД/Таблицы/Тестовые записи;
– Установить соединение с БД;

Установка и первые шаги Docker описывал ранее: ТУТ. В кратце, необходимо завести аккаунт на Docker Hub, скачать и установить приложение: Docker Desktop, залогиниться через терминал.

Когда Docker будет установлен и готов к работе подготовим образ PostgreSql

Для сохранения данных при перезапусках контейнера с образом нашей БД, необходимо создать том

docker volume create --name vol_1
docker volume ls
 
CAB-WSM-0001037:~ ttt$ docker volume ls
DRIVER              VOLUME NAME
local               d67ec8a59da03121046c25a5fd7454417f3d2009d2125a39e4eae1106a7bdcc5
local               vol_1

create – создать новый том
–name – ключ “имя тома”

ls – команда list, возвращает все Docker тома

docker run --rm --name postgresql-save -e POSTGRES_PASSWORD=mypassword 
-d -p 5400:5432 -v vol_1:/var/lib/postgresql/data postgres
 
docker container ls
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
51a711b63bfd        postgres             "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:5400->5432/tcp   postgresql-save
d755f0eb4ba2        thajeztah/pgadmin4   "python ./usr/local/…"   About an hour ago   Up About an hour    0.0.0.0:5050->5050/tcp   dreamy_lamarr

run – запуск Docker контейнера
–rm – автоматически удаляет контейнер если он уже существует
–name postgresql-save – задает имя
-e POSTGRES_PASSWORD=mypassword – пароль для БД
-d – backgraound процесс и без блокировки командной строку в терминале
-p 5400:5432 – задаем порт наружу,  подключаться к 5400
-v vol_1:/var/lib/postgresql/data – хранение данных при перезапусках контенера
postgres – имя Docker образа. Можно задавать версию

Остановить контейнер

docker container stop postgresql-save

Для подключения и работы с PostgreSql можно установить графический клиент pgAdmin

сразу из Docker:

docker run --rm -p 5050:5050 thajeztah/pgadmin4
NOTE: Configuring authentication for DESKTOP mode.
pgAdmin 4 - Application Initialisation
======================================
Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

IP on MacOs terminal:

ipconfig getifaddr en0

Теперь можно подключаться к PostgreSql.

 

PyCharm с плагином Database

Теперь после остановки контенера, просто запустить вновь. Все данные будут сохранены.

docker container stop postgresql-save
docker run --rm --name postgresql-save -e POSTGRES_PASSWORD=mypassword 
-d -p 5400:5432 -v vol_1:/var/lib/postgresql/data postgres

Releated Post