docker的安装不在此赘述了,此方法是有外网的情况下,最快装好所有环境的方法。
因业务需要,所以拉了13.11的包,需要下载历史版本的请到https://hub.docker.com/中查到版本的tag。
docker pull postgres:13.11
docker pull dpage/pgadmin4:7.0
#给pg创建持久化存储
docker volume create pgdata
#启动pg和pgadmin
docker run -d --name postgres1 -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 15432:5432 postgres:13.11
docker run -d --name pgadmin4 -p 15433:80 -e PGADMIN_DEFAULT_EMAIL=123@qq.com -e PGADMIN_DEFAULT_PASSWORD=123 dpage/pgadmin4:7.0
#再pg中插入一些数据,测试持久化存储
docker rm $(docker stop <容器id>)
docker run -d --name postgres2 -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 15432:5432 postgres:13.11
#这里忘记给容器加自启动了,加一下
docker update --restart=always <容器id>
注意下:pgadmin的页面访问宿主机ip:15433即可,账号密码分别为:123@qq.com和123
下面记录一下pg切换data目录的方法,原因是第一次部署时未使用lvm,后面无法扩容。
#使用rsync同步
rsync -az /var/lib/pgsql/13/data /test/
chown postgres.postgres /test/data
#将之前的data移走
mv /var/lib/pgsql/13/data /root/
#修改service文件的变量
sed -i '/^Environment=PGDATA=/s/.*/Environment=PGDATA=\/test\/data/g' /etc/systemd/system/multi-user.target.wants/postgresql-13.service
systemctl daemon-reload
#ok,直接启动即可