SoFunction
Updated on 2025-03-10

Steps to run postgreSQL with docker

1. Install docker;
Reference URL:

Docker Introductory Installation Tutorial (Novels)

Install Docker on Linux (very simple installation method)

2. Pull the docker image file of postgreSQL: docker pull postgres:12.1

3. Create docker volume, named "dv_pgdata" (in fact, you can omit manual creation, run the next step directly, docker will also automatically create): docker volume create dv_pgdata

4. Start the container and use -v to specify that the postgres data directory is mapped to the dv_pgdata created above: docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres:12.1

5. At this time, check the existing docker volume: docker volume ls

6. View volume information:

[root@VM_0_6_centos _data]# docker inspect dv_pgdata
[
  {
    "CreatedAt": "2020-01-14T08:40:03+08:00",
    "Driver": "local",
    "Labels": {},
    "Mountpoint": "/var/lib/docker/volumes/dv_pgdata/_data",
    "Name": "dv_pgdata",
    "Options": {},
    "Scope": "local"
  }
]

7. On the host machine, you can also view the content in the volume directly:

[root@VM_0_6_centos _data]# cd /var/lib/docker/volumes/dv_pgdata/_data
[root@VM_0_6_centos _data]# ll
total 132
drwx------ 19 polkitd ssh_keys 4096 Jan 14 08:40 .
drwxr-xr-x 3 root  root   4096 Jan 14 08:33 ..
drwx------ 5 polkitd ssh_keys 4096 Jan 14 08:38 base
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 global
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_commit_ts
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_dynshmem
-rw------- 1 polkitd ssh_keys 4535 Jan 14 08:38 pg_hba.conf
-rw------- 1 polkitd ssh_keys 1636 Jan 14 08:38 pg_ident.conf
drwx------ 4 polkitd ssh_keys 4096 Jan 14 08:45 pg_logical
drwx------ 4 polkitd ssh_keys 4096 Jan 14 08:38 pg_multixact
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:40 pg_notify
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_replslot
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_serial
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_snapshots
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:40 pg_stat
drwx------ 2 polkitd ssh_keys 4096 Jan 14 16:44 pg_stat_tmp
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_subtrans
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_tblspc
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_twophase
-rw------- 1 polkitd ssh_keys   3 Jan 14 08:38 PG_VERSION
drwx------ 3 polkitd ssh_keys 4096 Jan 14 08:38 pg_wal
drwx------ 2 polkitd ssh_keys 4096 Jan 14 08:38 pg_xact
-rw------- 1 polkitd ssh_keys  88 Jan 14 08:38 
-rw------- 1 polkitd ssh_keys 26588 Jan 14 08:38 
-rw------- 1 polkitd ssh_keys  36 Jan 14 08:40 
-rw------- 1 polkitd ssh_keys  94 Jan 14 08:40 

8. Check out postgresql:

[root@VM_0_6_centos ~]#docker exec -it 618 bash
root@618f1a4128ee:/# psql -U postgres

psql (12.1 (Debian 12.1-1.pgdg100+1))
Type "help" for help.

postgres=#

9. More often, we hope to use a graphical interface to manage and operate the database. We can deploy the pgadmin tool (such as below), and then access the host's port 5080 in the browser to open pgadmin.

docker pull dpage/pgadmin4:4.17
docker run --name pgadmin -p 5080:80 \
  -e 'PGADMIN_DEFAULT_EMAIL=pekkle@' \
  -e 'PGADMIN_DEFAULT_PASSWORD=xxxxxx' \
  -e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \
  -e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \
  -e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \
  -d dpage/pgadmin4:4.17

This is the article about the methods and steps of running postgreSQL with docker. For more related content on running postgreSQL by docker, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!