Docker 4. Взаимодействие с контейнером PostgreSQL
В этом посте разберём как подключиться к контейнеру с PostgreSQL.
А также, как использовать PostgreSQL с менеджерами БД и в Django.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 684611
Реклама
CLI.
Контейнер запустили, теперь давайте научимся с ним взаимодействовать.
Самый прямой способ взаимодействия, это зайти в контейнер и подключиться к CLI(Command Line Interface) PostgreSQL. Проще говоря, подключиться к БД в терминале.
Для этого необходимо в терминале выполнить следующую команду:
docker exec -it <container-name> psql -U <dataBaseUserName> <dataBaseName>
Подробнее про каждый пункт:
docker exec
- команда позволяющая зайти в контейнер и выполнить указанную далее команду.-it
- параметр, сообщающий докеру, что мы хотим подключиться в интерактивном режиме. Бывают случаи, когда терминал занят другим приложением, например выводом запущенного бота и чтобы выйти из контейнера не завершая работу запущенного приложения, необходимо нажать сочетание клавиш CTRL+Q+CTRL+P<container-name>
- имя или идентификатор контейнера, к которому хотим подключитьсяpsql
- команда для выполнения в контейнере. В нашем случае это подключение к PostgreSQL в консоли.-U <dataBaseUserName> <dataBaseName>
- параметры предыдущей команды. Тут мы передаём флаг-U
, указывающий, что далее будет введено имя пользователя для авторизации и имя базы данных к которой необходимо подключиться.
В итоге команда должна выглядеть следующим образом:
docker exec -it postgres-db psql -U username testdb
Так, мы попадём в консольный интерфейс PostgreSQL. Можно работать с БД.
Для выхода достаточно ввести команду exit
.
Менеджеры баз данных.
Другой способ подключиться к БД, это использовать менеджеры баз данных.
Таких программ много, например PgAdmin, DBeaver и другие.
Установив любой менеджер поддерживающий PostgreSQL, для подключения к БД необходимо указать следующие данные:
host
:localhost
port
:5432
username
: usernamepassword
: passworddatabase
: testdb
Django.
Точно так же, можно использовать запущенную БД в наших проектах, например, в Django:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': testdb,
'USER': username,
'PASSWORD': password,
'HOST': 'localhost',
'PORT': '5432',
}
}
Если возникнут вопросы по данной теме, не стесняйтесь задавать их в комментариях, обязательно постараюсь ответить.
Все статьи