# Docker pgsql

  1. 拉取镜像并且启动容器
# 拉取镜像
docker pull postgres:12
docker images

# 创建挂载目录
mkdir -p /home/pgsql/data

# 运行容器
docker run --name pgsql12 \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
-v /home/pgsql/data:/var/lib/postgresql/data \
-d postgres:12 

# -e POSTGRES_PASSWORD=postgres 设置环境变量,指定数据库的用户名和密码,用户名为postgres,密码为:postgres
# -v /home/pgsql/data:/var/lib/postgresql/data 指定宿主机的目录和原数据目录

docker ps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  1. 修改配置文件

注意,修改文件的时候可能没有vi/vim命令,可以拷贝到宿主机器在修改 docker容器拷贝文件到宿主机:[docker cp 1a1a8a3f3484:/var/lib/postgresql/data/pg_hba.conf /root] 宿主机拷贝文件到docker容器:[docker cp /root/pg_hba.conf 1a1a8a3f3484:/var/lib/postgresql/data/]

docker exec -it pgsql12 /bin/bash

# 需要修改配置文件pg_hba.conf 加上这个配置 `host all all 0.0.0.0/0 password`
vi /var/lib/postgresql/data/pg_hba.conf 
(host all all 0.0.0.0/0 password)
# 再修改postgresql.conf 把端口注释去掉 
vi /var/lib/postgresql/data/postgresql.conf 
(port = 5432)
1
2
3
4
5
6
7
8
  1. 重启容器,查看日志
docker restart pgsql12
docker logs pgsql12
1
2