站长资源服务器

用docker运行postgreSQL的方法步骤

整理:jimmy2024/12/23浏览2
简介1. 安装docker;参考网址:Docker入门安装教程(小白篇) linux上安装Docker(非常简单的安装方法) 2. 拉取postgreSQL的docker镜像文件:docker pull postgres:12.13. 创建 docker volume,名字为“dv_pgd

1. 安装docker;
参考网址:

Docker入门安装教程(小白篇) 

linux上安装Docker(非常简单的安装方法) 

2. 拉取postgreSQL的docker镜像文件:docker pull postgres:12.1

3. 创建 docker volume,名字为“dv_pgdata"(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):docker volume create dv_pgdata

4. 启动容器,用-v来指定把postgres的数据目录映射到上面创建的dv_pgdata里面:docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres:12.1

5. 这时候查看已存在的docker volume:  docker volume ls

6. 查看volume信息:

[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. 在宿主机,也可以直接查看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. 查看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. 更多的时候,我们希望能用图形界面来管理和操作数据库,可以部署pgadmin工具(例如下面),然后在浏览器中访问宿主机的5080端口,便能打开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