Containerized Database Management - Connecting PgAdmin 4 with PostgreSQL Server using Docker
Doing Web Development on a local machine requires multiple applications running together. Docker provides an os level virtualization on the host machine to have an application running together on the machine.Web Story
PostgreSQL is a great and powerfull free open-source RDBMS database system with SQL compliance for any enterprise application. To use PosgreSQL in your desktop you can download it in their website. But for this post we are going to use and download it in the background with docker container.
For using PostgreSQL in your local computer, we need tools for the databases administration.
Database administration in PostgreSQL using PgAdmin is a popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world. PgAdmin may be used on Linux, Unix, macOS and Windows to manage PostgreSQL and EDB Advanced Server 10 and above. As for the purpose of this post and demonstration I am using PgAdmin version 4.
There are several configuration to write in the Docker container
docker-compose.yml setup for connecting PostgreSQL into the PGAdmin 4 Administration.
I am using Docker as a tool for my web development environment. Docker is very helpful on my local machine to support the entire ecosystem of application services. You can run your web application with the database services on the same machine and you can set things all up in auto start if you reboot or restart your machine in the Docker Desktop settings.
Compare to the manual setup from these web development setups, Docker is very straightforward and does not need to figure out what works on my machine and what does not work on another machine on the OS level.
For me, to using Docker container service, I need to create a separate local directory for any Docker container services apart from the development source directories such as
./Docker and create a
docker-compose.yml file for each service directory:
Docker ├── README.md ├── mariadb-service │ └── docker-compose.yml ├── mongodb-service │ ├── README.md │ └── docker-compose.yml ├── mysql-service │ └── docker-compose.yml └── postgre-service └── docker-compose.yml
Docker Container Development Setup for PostgreSQL
This is the commands for PostgreSQL Docker container on
version: '3.3' services: postgredb: container_name: postgredb image: postgres restart: always environment: POSTGRES_PASSWORD: example volumes: - ./data:/var/lib/postgresql/data ports: - 5432:5432 expose: - 5432 networks: default: name: postgre-service_default
From these credentials from the environment variables such as
POSTGRES_PASSWORD with the default username:
postgres could be inserted on both PGAdmin 4 and Adminer. PostgreSQL Database default port
:5432 will be forwarded on port
Setup PgAdmin 4
PgAdmin is an administrative application interface for PostgreSQL Database, you can create, design, and other database adminstrative tasks using these tools. Download PGAdmin 4 with this link if you do not have one.
Docker Compose Command to Run PostgreSQL Server Container
This Docker Compose command will start your PostgreSQL Server service in the Docker machine and download the requirement if the Image does not exist. Type the Docker compose command in the terminal to start up the services. The -d command will detach the container from the terminal console and will be a stand-alone service that will always start when your computer restart. Change directory into your
postgre-service and start to execute this command to starting-up PostgreSQL Database Server Container.
docker-compose -f docker-compose.yml up -d
Connect PostgreSQL Database Container into PgAdmin 4
Open up your PgAdmin 4 and insert your master password before entering the Dashboard
Create a server or add your server group and name to continue
Create or add your server name to continue
Insert your credential username (postgres) and password database along with the host connection address to continue
Databases will be displayed if created previously
PostgreSQL Databases Schemas
PostgreSQL Table List
Perform a Container bash login
Sometimes we need to login into the OS Layer to see if the config or any administration works. Docker Container provide a bash login commands such as:
docker exec -it postgredb bash docker exec -it mongodb bash docker exec -it mysqldb bash
Connect your Vercel Postgres Database Store to PgAdmin 4
If you are using other RDBMS or NoSQL databases, such as MySQL or MongoDB, you can explore our other blog posts on connecting these servers from Docker containers. Read about how to connect MySQL server from a Docker container, as well as MongoDB, here.
From the development side, Docker PostgreSQL Container is really useful for a persistent development environment and keeps all the services on the same host machine without worrying about operating-system-level trouble.
** All images and logos belong to their respective owners.