google/alloydbomniAlloyDB Omni是一款可下载的数据库软件包,允许在自有计算环境中部署精简版的AlloyDB for PostgreSQL。它100%兼容PostgreSQL应用和工具,同时为OLTP和OLAP工作负载提供更高性能,并通过多种自动管理功能简化管理。AlloyDB AI提供强大工具,支持在数据库中创建、存储和索引向量嵌入,助力构建生成式AI应用。其便携性使其可在数据中心、笔记本电脑、云虚拟机实例等多种环境中运行。
amd64arm64v8(预览版,不推荐用于生产环境)AlloyDB Omni是免费下载的PostgreSQL兼容数据库软件,可免费用于开发、评估和非商业用途,具体定义见许可条款。
如需在生产环境部署AlloyDB Omni,请参考生产部署文档。
AlloyDB Omni适用于以下场景:
若需升级至AlloyDB的全托管扩展、安全和可用性功能,可将AlloyDB Omni数据迁移至AlloyDB集群,如同其他初始数据导入操作。详情请参考官方文档。
使用以下命令启动AlloyDB Omni容器实例:
console$ docker run --name my-omni -e POSTGRES_PASSWORD=mysecretpassword -d google/alloydbomni
默认情况下,entrypoint会通过initdb创建postgres用户和数据库。上述命令将密码设置为mysecretpassword,实际使用时请选择安全密码。
通过docker exec在容器内使用psql连接到AlloyDB Omni实例:
console$ docker exec -it my-omni psql -U postgres psql (15.5) Type "help" for help. postgres=# SELECT 1; ?column? ---------- 1 (1 row)
PostgreSQL镜像使用多个环境变量,其中仅POSTGRES_PASSWORD为必填项,其余为可选项。
注意:Docker特定变量仅在容器启动时数据目录为空的情况下生效;容器启动时若数据目录已存在数据库,则不会修改现有数据库。
POSTGRES_PASSWORD(必填)使用PostgreSQL镜像时此环境变量为必填项,不能为空或未定义。它设置PostgreSQL超级用户密码,默认超级用户由POSTGRES_USER环境变量定义。
注意1:PostgreSQL镜像在本地设置了trust认证,因此从localhost(同一容器内)连接时可能无需密码,但从其他主机/容器连接时需要密码。
注意2:此变量定义PostgreSQL实例中的超级用户密码,由初始容器启动期间的initdb脚本设置;与psql客户端可能使用的PGPASSWORD环境变量无关(详见PostgreSQL文档)。
POSTGRES_USER(可选)可选环境变量,与POSTGRES_PASSWORD一起用于设置用户及其密码。此变量将创建具有超级用户权限的指定用户,并创建同名数据库。若未指定,默认使用postgres用户。
POSTGRES_DB(可选)可选环境变量,用于定义镜像首次启动时创建的默认数据库名称。若未指定,将使用POSTGRES_USER的值。
POSTGRES_INITDB_ARGS(可选)可选环境变量,用于向initdb传递参数。值为空格分隔的参数字符串,如添加数据页校验和:-e POSTGRES_INITDB_ARGS="--data-checksums"。
POSTGRES_INITDB_WALDIR(可选)可选环境变量,用于定义AlloyDB Omni事务日志的另一个位置。默认情况下,事务日志存储在主数据文件夹(PGDATA)的子目录中。有时可能需要将事务日志存储在具有不同性能或可靠性特征的存储上。
POSTGRES_HOST_AUTH_METHOD(可选)可选变量,用于控制所有数据库、所有用户、所有地址的host连接的auth-method。若未指定,14+版本使用scram-sha-256密码认证(旧版本使用md5)。在未初始化的数据库上,会通过以下行填充pg_hba.conf:
echo "host all all all $POSTGRES_HOST_AUTH_METHOD" >> pg_hba.conf
更多信息见pg_hba.conf文档。
PGDATA(可选)重要提示:当挂载卷到
/var/lib/postgresql时,/var/lib/postgresql/data路径是容器运行时的本地卷,因此数据不会持久化到挂载的卷上。
可选变量,用于定义数据库文件的其他位置(如子目录)。默认值为/var/lib/postgresql/data。若使用的是文件系统挂载点(如GCE持久磁盘)、无法将所有权改为postgres用户的远程文件夹(如某些NFS挂载),或包含文件夹/文件(如lost+found),Postgres initdb需要在挂载点内创建子目录来存储数据。
示例:
console$ docker run -d \ --name some-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \ -e PGDATA=/var/lib/postgresql/data/pgdata \ -v /custom/mount:/var/lib/postgresql/data \ google/alloydbomni
使用上述命令时,请将/custom/mount/替换为实际的挂载点。
上述说明改编自PostgreSQL官方镜像的说明,因为AlloyDB Omni与PostgreSQL兼容。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务