参考链接
https://hub.docker.com/_/postgres
安装
1)拉取镜像
docker pull postgres:17.6
2)拉取 postgres 的配置文件
# 将 pg 的配置文件输出到 /app/docker/pg/postgres.conf docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > /app/docker/pg/postgres.conf
3)运行 postgres
docker run -d \ --name postgres \ -p 5432:5432 \ -e POSTGRES_PASSWORD=mysecretpassword \ -v /app/docker/pg/postgres.conf:/etc/postgresql/postgresql.conf \ -v /app/docker/pg/data:/var/lib/postgresql/data \ postgres:17.6 -c 'config_file=/etc/postgresql/postgresql.conf'
说明:
--name postgres:容器名称为 postgres
-p 5432:5432:宿主机端口映射,如果不需要可以删除
-e POSTGRES_PASSWORD=mysecretpassword:设置 postgres 账号密码为 mysecretpassword
-v /app/docker/pg/postgres.conf:/etc/postgresql/postgresql.conf:容器卷映射,宿主机 /app/docker/pg/postgres.conf 映射到 容器内 /etc/postgresql/postgresql.conf;方便对 pg 的配置文件进行修改
-v /app/docker/pg/data:/var/lib/postgresql/data:容器卷映射,宿主机的 /app/docker/pg/data 映射到 容器内 /var/lib/postgresql/data;用于存储 pg 数据库的数据
-c 'config_file=/etc/postgresql/postgresql.conf':用于指定 pg 数据库配置文件的路径
容器内使用 pg
1)进入容器
# postgres 为容器名 docker exec -it postgres bash
2)切换 postgres 用户
su postgres
3)执行 psql
psql