本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
这是一个支持复制功能且适用于ZODB RelStorage的PostgreSQL Docker镜像。该镜像具有通用性,可在非EEA相关项目中复用。
:latest Dockerfile - PostgreSQL:16:17s Dockerfile - PostgreSQL:17:16s Dockerfile - PostgreSQL:16:15s Dockerfile - PostgreSQL:15:14s Dockerfile - PostgreSQL:14:13s Dockerfile - PostgreSQL:13:12s Dockerfile - PostgreSQL:12:11s Dockerfile - PostgreSQL:11:10s Dockerfile - PostgreSQL:10:9.6s Dockerfile - PostgreSQL:9.6:9.5s Dockerfile - PostgreSQL:9.5查看旧版本
$ docker run --name=pg1 \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DBNAME="datafs zasync" \ -e POSTGRES_DBUSER=zope \ -e POSTGRES_DBPASS=zope \ eeacms/postgres
或使用docker-compose:
version: "2" services: postgres: image: eeacms/postgres ports: - "5432:5432" environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DBNAME: "datafs zasync" POSTGRES_DBUSER: zope POSTGRES_DBPASS: zope volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
启动主节点:
$ docker run --name=master \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DBNAME="datafs zasync" \ -e POSTGRES_DBUSER=zope \ -e POSTGRES_DBPASS=zope \ -e POSTGRES_CONFIG_wal_level=hot_standby \ -e POSTGRES_CONFIG_max_wal_senders=8 \ -e POSTGRES_CONFIG_wal_keep_segments=8 \ -e POSTGRES_CONFIG_hot_standby=on \ eeacms/postgres
启动副本节点:
$ docker run --name=replica1 \ --link=master \ -e POSTGRES_REPLICATE_FROM=master \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_CONFIG_wal_level=hot_standby \ -e POSTGRES_CONFIG_max_wal_senders=8 \ -e POSTGRES_CONFIG_wal_keep_segments=8 \ -e POSTGRES_CONFIG_hot_standby=on \ eeacms/postgres
或使用docker-compose:
version: "2" services: master: image: postgres-dev environment: POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "postgres" POSTGRES_DBNAME: "datafs zasync" POSTGRES_DBUSER: "zope" POSTGRES_DBPASS: "zope" POSTGRES_CONFIG_wal_level: "hot_standby" POSTGRES_CONFIG_max_wal_senders: "8" POSTGRES_CONFIG_wal_keep_segments: "8" POSTGRES_CONFIG_hot_standby: "on" volumes: - master-data:/var/lib/postgresql/data replica: image: postgres-dev depends_on: - master environment: POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "postgres" POSTGRES_CONFIG_wal_level: "hot_standby" POSTGRES_CONFIG_max_wal_senders: "8" POSTGRES_CONFIG_wal_keep_segments: "8" POSTGRES_CONFIG_hot_standby: "on" POSTGRES_REPLICATE_FROM: "master" volumes: - replica-data:/var/lib/postgresql/data volumes: master-data: replica-data:
可通过修改环境变量自定义部署。详见下文支持的环境变量部分。
您可能需要恢复现有的PostgreSQL数据库到数据容器中。详见恢复现有数据库部分。
有多种方式可以存储Docker容器中运行的应用程序所使用的数据。建议您熟悉可用的选项。Docker文档是了解不同存储选项和变体的良好起点,此外还有许多博客和论坛帖子对此进行了讨论并提供了建议。
$ cd eea.docker.postgres $ docker-compose up -d $ docker exec -it eeadockerpostgres_postgres_1 \ gosu postgres /postgresql.restore/database-backup.sh datafs $ docker cp eeadockerpostgres_postgres_1:/postgresql.backup/datafs.gz .
警告: 切勿在生产环境直接执行此操作。这将删除您现有的数据库
$ cd eea.docker.postgres $ docker-compose up -d $ docker cp datafs.gz eeadockerpostgres_postgres_1:/postgresql.backup/ $ docker exec eeadockerpostgres_postgres_1 \ gosu postgres /postgresql.restore/database-restore.sh datafs
POSTGRES_USER:此可选环境变量与POSTGRES_PASSWORD一起使用,用于设置用户及其密码。该变量将创建具有超级用户权限的指定用户以及同名数据库。如果未指定,将使用默认用户postgres。POSTGRES_PASSWORD:建议使用此环境变量配置PostgreSQL镜像。它用于设置PostgreSQL超级用户密码。默认超级用户由POSTGRES_USER环境变量定义。默认值为postgres。POSTGRES_DBNAME:在PostgreSQL中创建多个数据库(空格分隔),并以POSTGRES_DBUSER为所有者。例如:POSTGRES_DBNAME=datafs zasync。POSTGRES_DBPARAMS:使用自定义选项创建POSTGRES_DBNAME,例如:POSTGRES_DBPARAMS="--lc-collate=C --template=template0 --lc-ctype=C"。有关可能的选项,请参见createdb --help。POSTGRES_DBUSER:POSTGRES_DBNAME的所有者。POSTGRES_DBPASS:POSTGRES_DBUSER的密码。POSTGRES_REPLICATE_FROM:启动指定主节点的PostgreSQL副本。POSTGRES_REPLICATION_NETWORK:限制仅在此网络上进行复制(例如:172.168.0.0/16)。POSTGRES_CONFIG:多行环境变量,用于提供额外或覆盖PostgreSQL配置。RECOVERY_CONFIG:多行环境变量,用于向recovery.conf添加条目。POSTGRES_CRONS:多行环境变量,用于定义维护定时任务(如夜间备份、清理归档WAL文件)。您还可以通过使用POSTGRES_CONFIG_前缀的环境变量覆盖PostgreSQL配置。例如:
POSTGRES_CONFIG_MAX_CONNECTIONS=200 POSTGRES_CONFIG_SHARED_BUFFERS=4GB
同样,您可以使用RECOVERY_CONFIG_环境变量配置recovery.conf。
有关支持的参数,请参见PostgreSQL文档。您还应查看调整PostgreSQL服务器。
通过使用POSTGRES_CRON_前缀的环境变量定义维护定时任务。例如,在凌晨3点备份datafs数据库:
POSTGRES_CRON_1=0 3 * * * postgres /postgresql.restore/database-backup.sh datafs
或在凌晨5点恢复Staging数据库:
POSTGRES_CRON_2=0 5 * * * postgres /postgresql.restore/database-restore.sh datafs
如果遇到类似FATAL: could not map anonymous shared memory: Cannot allocate memory的错误,请通过环境变量降低shared_buffers的值(默认值为2G):
POSTGRES_CONFIG_shared_buffers=512MB
另请参见:调整PostgreSQL服务器
原始代码的初始所有者为欧洲环境署(EEA)。保留所有权利。
原始代码是免费软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款(版本2或更高版本)重新分发和/或修改它。
欧洲环境署(欧盟)


免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429