上文对PostgreSQL做了简单的介绍,并且与Mysql 做了出略的比较。本文,将开始学习如何利用Docker安装PostgreSQL并使用。
在 Docker 上安装并运行 PostgreSQL 是一个非常方便和快速的方法。以下是详细步骤:
1. 拉取 PostgreSQL 镜像
上dockerHub搜索 PostgreSQL
使用 Docker 命令从 Docker Hub 拉取 PostgreSQL 官方最新版的镜像:
docker pull postgres:alpine3.20
2. 运行 PostgreSQL 容器
使用以下命令运行一个 PostgreSQL 容器:
docker run --name my_postgresql --restart=always -d -p 5432:5432 -v D:\soft\docker\Postgresql:/var/lib/postgresql/data --shm-size=10g -e POSTGRES_PASSWORD=mysecretpassword postgres:alpine3.20
-
--name my_postgres
:容器的名称,可以自定义。 -
-e POSTGRES_PASSWORD=mysecretpassword
:设置 PostgreSQL 的超级用户postgres
的密码。 -
-d
:以守护进程模式运行 PostgreSQL 容器。 -
-p 宿主端口:容器端口
: 宿主机与容器的端口映射,PostgreSQL默认端口5432
-
-v 宿主目录:容器目录
: -v 将宿主机存储目录挂载到容器中存储目录,让数据持久化到本地
耐心等待, 返回容器ID,即创建成功
3.使用本地主机连接
安装完成后,我们就可以通过 Navicat 客户端工具(如 psql
、pgAdmin、DBeaver 等)链接
根据之前安装命令的连接信息连接到 PostgreSQL:
-
主机:
localhost
或127.0.0.1
-
端口:
5432
-
初始化数据库:
postgres
-
用户名:
postgres
-
密码:
mysecretpassword
填入信息后,点击测试链接,提示成功
确定后保存,再打开链接提示
Error: column "datlastsysoid" does not exit
LINE 1:SELECT DISTTINCT datlastsysoid FROM pg_database
发现是我的Navicat
的版本12.1.11
与postgres的版本alpine3.20
不适配,故切换为适配的版本12-alpine3.20
。
先删除alpine3.20
版本相关的容器及镜像。
#停机
docker stop my_postgresql
#移除容器
docker rm my_postgresql
#移除镜像
docker rmi postgres:alpine3.20
再执行以下调整的命令即可。
docker run --name my_postgresql --restart=always -d -p 5432:5432 -v D:\soft\docker\Postgresql:/var/lib/postgresql/data --shm-size=10g -e POSTGRES_PASSWORD=mysecretpassword postgres:12-alpine3.20
创建完毕后再用Navicat
就能链接成功了。
4.其它的一些配置
在启动容器时,可以设置更多的环境变量来配置 PostgreSQL:
-
POSTGRES_USER
:设置 PostgreSQL 的超级用户名(默认为postgres
)。 -
POSTGRES_PASSWORD
:设置 PostgreSQL 的超级用户密码。 -
POSTGRES_DB
:设置默认数据库名(如果未设置,默认创建与用户同名的数据库)。
docker run --name my_postgres -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=mydb -p 5432:5432 -d postgres
总结
通过 Docker 安装 PostgreSQL,可以快速部署和管理数据库实例,特别适合开发和测试环境。使用上述步骤,可以轻松完成 PostgreSQL 的安装、运行和连接,同时也可以通过挂载本地目录实现数据持久化。