Linux Docker Postgresql

1.拉取 postgres 镜像

docker pull postgres

2.查看镜像

docker images

3.创建数据库容器并查看

docker run -p 5432:5432 -it --name postgres --restart always -e POSTGRES_PASSWORD='password' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -d postgres
docker ps

4.进入容器,切换用户,登录查看

docker exec -it postgres bash
su postgres
psql -U postgres -W

5.设置远程访问许可(重要)

1)拷贝 pg_hba.conf 文件,打开 /home 下的 pg_hba.conf,添加 host all all 0.0.0.0/0 md5,将修改后的文件替换回去

sudo docker cp postgres:/var/lib/postgresql/data/pg_hba.conf /home
host all all 0.0.0.0/0 md5
sudo docker cp /home/pg_hba.conf postgres:/var/lib/postgresql/data

2)拷贝 postgresql.conf 文件,打开 /home 下的 postgresql.conf,定位 listen_addresses,将 listen_addresses = 'localhost',修改为 listen_addresses = '*',将修改后的文件替换回去

sudo docker cp postgres:/var/lib/postgresql/data/postgresql.conf /home
listen_addresses = '*' sudo docker cp
/home/postgresql.conf postgres:/var/lib/postgresql/data

6.设置防火墙

systemctl status firewalld

7.若未启动,则执行以下命令

启动
systemctl start firewalld
检查状态
firewall-cmd --state
防火墙正常则执行以下命令
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
重启
systemctl stop firewalld.service
systemctl start firewalld.service

8.使用 Navicat for PostgreSQL 测试连接

原文地址:https://www.cnblogs.com/chendongbky/p/14874794.html