在Docker中安装Postgresql
在Docker中安装Postgresql
有个服务挂在supabase上长期未用,然后发现已经过期,只保留备份文件,遂本地部署。
拉取镜像
1 | docker pull postgres |
创建本地卷
数据卷可以在容器之间共享和重用, 默认会一直存在,即使容器被删除(docker volume inspect pgdata可查看数据卷的本地位置,验证持久数据目录)你也不想数据库和容器一起消失吧
1 | docker volume create pgdata |
可以看到输出本地卷信息
1 | root@rick:/home/rick# docker volume inspect pgdata |
启动容器,使用持久数据存储启动 PostgreSQL 容器
启动时,需要将刚上个步骤创建的卷pgdata
挂载到容器的/var/snap/docker/common/var-lib-docker/volumes/pgdata/_data
目录。
- run :创建并运行一个容器;
- –name :指定容器名称。(容器名称 自己设置)
- -e POSTGRES_PASSWORD=password,设置环境变量,指定数据库的登录口令为password(password 自己设置)
- -p :指定宿主机和 Docker 容器端口映射,冒号前为宿主机端口号,另一个是容器端口号。(Docker的容器默认情况下只能由本地主机访问,即A主机上的容器不能被B主机访问,所以要做端口映射)(端口号 自己设置)
- -d postgres:指定使用postgres作为镜像
1 | docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5040:5040 -v pgdata:/var/snap/docker/common/var-lib-docker/volumes/pgdata/_data -d postgres |
连接数据库
从容器连接
1 | docker exec -it postgres /bin/bash |
切换用户
1 | su postgres |
连接
1 | psql |
从主机连接
首先安装客户端sudo apt install postgresql-client
显示容器ip地址docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器ID
连接容器:psql -U postgres -h 172.17.0.3
恢复备份文件
1 | psql -U postgres -h 172.17.0.3 -f [email protected] |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 polar-bear~Blog!
评论