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 测试连接