
Рассмотрим установку 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 |