Method steps for running postgreSQL with docker

  • 2021-09-11 21:49:22
  • OfStack

1. Install docker;
Reference website:

Docker Getting Started Installation Tutorial (Small White)

Install Docker on linux (very simple installation method)

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

3. Create docker volume with the name "dv_pgdata" (in fact, you can omit manual creation, run the next step directly, and docker will be created automatically): docker volume create dv_pgdata

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

5. Look at the existing docker volume at this time: 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 directly view the contents of volume:


[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 postgresql.auto.conf
-rw------- 1 polkitd ssh_keys 26588 Jan 14 08:38 postgresql.conf
-rw------- 1 polkitd ssh_keys  36 Jan 14 08:40 postmaster.opts
-rw------- 1 polkitd ssh_keys  94 Jan 14 08:40 postmaster.pid

8. View 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 want to use a graphical interface to manage and operate the database. We can deploy pgadmin tools (such as the following), and then access the host 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@abc.com' \
  -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

Related articles: