Connect From Your Local Machine to a PostgreSQL Database in DockerA simple How To to get you up and running with DockerLorenz VanthilloBlockedUnblockFollowFollowingMar 19, 2018Docker makes it very easy to spin up a PostgreSQL database management system.
With the following command it is possible to start your PostgreSQL Docker container on your server or local machine:$ docker run -d -p 5432:5432 –name my-postgres -e POSTGRES_PASSWORD=mysecretpassword postgresThis command will start a PostgreSQL database and map ports using the following pattern: -p <host_port>:<container_port>.
Port 5432 of our container will be mapped on port 5432 of our host or server.
Access the container on your host or server.
We will create a database inside our PostgreSQL container.
$ docker exec -it my-postgres bashNow you are ‘inside’ your container.
We can access postgres and create the database.
root@cb9222b1f718:/# psql -U postgrespsql (10.
3 (Debian 10.
3-1.
pgdg90+1))Type "help" for help.
postgres=# CREATE DATABASE mytestdb;CREATE DATABASEpostgres=#qWe are finished.
You can exit your container (q) and go to your local machine.
Here you need some PostgreSQL Client tool installed:PSQL (CLI)PgAdmin…My PostgreSQL container is running on my local machine, which explains why I am connecting with localhost.
If it is running on a specific server, use your server IP.
(For Windows docker-machine you probably need to use 192.
168.
99.
100).
$ psql -h localhost -p 5432 -U postgres -W Password for user postgres: psql (9.
5.
5, server 10.
3 (Debian 10.
3-1.
pgdg90+1)) WARNING: psql major version 9.
5, server major version 10.
Some psql features might not work.
Type "help" for help.
postgres=# l List of databases Name | Owner | Encoding | Collate | Ctype | ———–+———-+———-+————+————+ mytestdb | postgres | UTF8 | en_US.
utf8 | en_US.
utf8 | postgres | postgres | UTF8 | en_US.
utf8 | en_US.
utf8 | template0 | postgres | UTF8 | en_US.
utf8 | en_US.
utf8 | | | | | | template1 | postgres | UTF8 | en_US.
utf8 | en_US.
utf8 | | | | | | (4 rows)After authenticating you will see the mytestdb is in the list of available databases.
Now you can connect with your database using c .
For a tool like PgAdmin you can define your connection.
Also, here you have to replace localhost with your server IP if your container is running elsewhere.
Create a server connectionDefine your connectionSave the connection and you can connect to the database which is running in your PostgreSQL Docker container!This post was based on a popular SO answer I gave.
I hope it helps!.