基于单机文件系统部署
棠羽
2023/08/01
15 min
本文将指导您在单机文件系统(如 ext4)上编译部署 PolarDB-PG,适用于所有计算节点都可以访问相同本地磁盘存储的场景。
拉取镜像
我们已提供 PolarDB-PG 的 单机实例镜像,里面已包含启动 PolarDB-PG 单机实例的入口脚本。镜像目前支持 linux/amd64
和 linux/arm64
两种 CPU 架构。
docker pull polardb/polardb_pg_local_instance:11
docker pull registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:11
初始化数据库
新建一个空白目录 ${your_data_dir}
作为 PolarDB-PG 实例的数据目录。启动容器时,将该目录作为 VOLUME 挂载到容器内,对数据目录进行初始化。在初始化的过程中,可以传入环境变量覆盖默认值:
POLARDB_PORT
:PolarDB-PG 运行所需要使用的端口号,默认值为5432
;镜像将会使用三个连续的端口号(默认5432-5434
)POLARDB_USER
:初始化数据库时创建默认的 superuser(默认postgres
)POLARDB_PASSWORD
:默认 superuser 的密码
使用如下命令初始化数据库:
docker run -it --rm \
--env POLARDB_PORT=5432 \
--env POLARDB_USER=u1 \
--env POLARDB_PASSWORD=your_password \
-v ${your_data_dir}:/var/polardb \
polardb/polardb_pg_local_instance:11 \
echo 'done'
docker run -it --rm \
--env POLARDB_PORT=5432 \
--env POLARDB_USER=u1 \
--env POLARDB_PASSWORD=your_password \
-v ${your_data_dir}:/var/polardb \
registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:11 \
echo 'done'
启动 PolarDB-PG 服务
数据库初始化完毕后,使用 -d
参数以后台模式创建容器,启动 PolarDB-PG 服务。通常 PolarDB-PG 的端口需要暴露给外界使用,使用 -p
参数将容器内的端口范围暴露到容器外。比如,初始化数据库时使用的是 5432-5434
端口,如下命令将会把这三个端口映射到容器外的 54320-54322
端口:
docker run -d \
-p 54320-54322:5432-5434 \
-v ${your_data_dir}:/var/polardb \
polardb/polardb_pg_local_instance:11
docker run -d \
-p 54320-54322:5432-5434 \
-v ${your_data_dir}:/var/polardb \
registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:11
或者也可以直接让容器与宿主机共享网络:
docker run -d \
--network=host \
-v ${your_data_dir}:/var/polardb \
polardb/polardb_pg_local_instance:11
docker run -d \
--network=host \
-v ${your_data_dir}:/var/polardb \
registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:11