如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Oracle Autonomous AI Database Free 容器镜像支持两种数据库工作负载类型——Lakehouse 与 Transaction Processing,能力与云端 Oracle Autonomous AI Database 保持一致。
当前支持以下核心特性:
每个数据库的存储容量上限为 20 GB。
请前往https://github.com/oracle/adb-free/pkgs/container/adb-free,选择所需的数据库版本及对应镜像使用。
本项目遵循以下命名规则:
| 数据库版本 | 最新镜像标签 | 特定发布版本镜像标签 | 支持架构 |
|---|---|---|---|
| 26ai | latest-26ai | 26.9.4.1-26ai | linux/arm64 和 linux/amd64 |
| 19c | latest | 26.9.4.2 | linux/amd64 |
Oracle Autonomous AI Database Free 容器最低需要 4 核 CPU 与 8 GiB 内存。
容器运行依赖 Linux 内核,请执行以下命令启动 podman 虚拟机:
podman machine init
podman machine set --cpus 4 --memory 8192
podman machine start
[!NOTE] 26ai 版本镜像为多架构镜像,已针对 ARM64 和 AMD64 平台原生构建。 19c 版本镜像仅原生适配 linux/amd64 平台,若要在 ARM 架构设备上运行 19c 版本的 adb-free 容器,需使用 colima 进行模拟。 相关 Colima 虚拟机配置步骤请参考常见问题。
注意:本指南示例使用
podman命令,但该镜像完全符合开放容器倡议(OCI)与 Docker 规范。ADB 容器可在 OCI 容器运行时与 Docker 运行时环境中无缝工作,你也可以使用docker命令启动容器。
如需启动面向 ATP 工作负载的 Oracle Autonomous AI Database Free 容器,请执行以下命令:
podman run -d \
-p 1521:1522 \
-p 1522:1522 \
-p 8443:8443 \
-p 27017:27017 \
-e WORKLOAD_TYPE=ATP \
-e WALLET_PASSWORD=*** \
-e ADMIN_PASSWORD=*** \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--name adb-free \
ghcr.io/oracle/adb-free:latest-26ai
注意:运行 19c 版本请将镜像标签替换为
ghcr.io/oracle/adb-free:latest
容器首次启动说明:
ADMIN_PASSWORD 完成密码指定。WALLET_PASSWORD 指定的密码生成。下表对传入容器的环境变量进行了说明:
| 环境变量 | 说明 |
|---|---|
| WORKLOAD_TYPE | 可取值为 ATP(面向事务处理场景)或 ADW(面向 Lakehouse 场景),默认值为 ATP |
| DATABASE_NAME | 数据库名称仅允许包含字母数字字符,如未指定,系统会根据所传入的工作负载类型自动命名为 MYATP 或 MYADW |
| ADMIN_PASSWORD | 管理员用户密码长度需在 12 到 30 位之间,至少包含 1 个大写字母、1 个小写字母和 1 个数字,且密码中不得包含用户名 |
| WALLET_PASSWORD | ***密码最小长度为 8 位,需同时包含字母、数字或特殊字符 |
| ENABLE_ARCHIVE_LOG | 用于开启数据库归档日志功能,默认值为 True,若要关闭归档日志,可将该值设为 False |
注意:若要使用 OFS 挂载功能,启动容器时必须添加
SYS_ADMIN权限,同时需确保虚拟设备/dev/fuse可正常访问。
端口说明
以下是映射到容器进程的端口定义:
| 端口 | 说明 |
|---|---|
| 1521 | TLS 连接 |
| 1522 | mTLS 连接 |
| 8443 | ORDS / APEX 与 Database Actions 的 HTTPS 服务端口 |
| 27017 | Mongo API 服务端口 |
HTTP 代理配置
如果你的网络环境需要通过企业代理访问外网,可通过以下两种方式为数据库配置代理设置,供 DBMS_CLOUD 等组件使用:
HTTP_PROXY 属性,该配置将被 DBMS_CLOUD 等包调用:exec DBMS_CLOUD_CONTAINER_ADMIN.set_database_property('HTTP_PROXY', 'www-my-corp-proxy.com:80/');
UTL_HTTP.set_proxy 为通过 UTL_HTTP 发送的 HTTP 请求配置代理:exec UTL_HTTP.SET_PROXY('www-my-corp-proxy.com');
容器启动完成后,你可以使用 adb-cli 执行各类数据库操作。
为方便使用,你可以定义如下别名:
alias adb-cli="podman exec adb-free adb-cli"
可用命令
>> adb-cli --help
Usage: adb-cli [OPTIONS] COMMAND [ARGS]...
ADB-S Command Line Interface (CLI) to perform container-runtime database
operations
Options:
-v, --version Show the version and exit.
--help Show this message and exit.
Commands:
add-database
change-password
添加数据库
你可以使用 add-database 命令创建新数据库:
adb-cli add-database --workload-type "ADW" --admin-password "Welcome_1234"
修改密码
如需修改 Admin 用户密码,请执行以下命令:
adb-cli change-password --database-name "MYADW" --old-password "Welcome_1234" --new-password "Welcome_12345"
挂载数据卷
如需在容器重启和删除后仍保留数据,请将数据卷挂载到路径 /u01/data,后续可参考https://docs.oracle.com/en-us/iaas/autonomous-database-serverless/doc/autonomous-docker-container.html#GUID-03B5601E-E15B-4ECC-9929-D06ACF576857 完成操作:
podman run -d \
-p 1521:1522 \
-p 1522:1522 \
-p 8443:8443 \
-p 27017:27017 \
-e WORKLOAD_TYPE=ATP \
-e WALLET_PASSWORD=*** \
-e ADMIN_PASSWORD=*** \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--name adb-free \
--volume adb_container_volume:/u01/data \
ghcr.io/oracle/adb-free:latest-26ai
访问 ORDS/APEX/Database Actions
容器主机名将用于生成自签名 SSL 证书,为 8443 端口提供 HTTPS 服务。你可以通过容器所在主机地址(或直接使用 localhost)访问 APEX 与 Database Actions:
| 应用 | 访问地址 |
|---|---|
| APEX | https://localhost:8443/ords/apex |
| Database Actions | https://localhost:8443/ords/sql-developer |
[!NOTE] 对于使用
adb-cli add-database命令额外挂载的数据库,请分别使用以下 URL 格式访问 APEX 和 Database Actions:https://localhost:8443/ords/{database_name}/apex和https://localhost:8443/ords/{database_name}/sql-developer。
Wallet 配置
容器内的 TLS ***会生成在路径 /u01/app/oracle/wallets/tls_wallet 位置。
将***复制到你的宿主机:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
本示例中,***被复制到 /scratch/tls_wallet 文件夹。
将 TNS_ADMIN 环境变量指向该***目录:
export TNS_ADMIN=/scratch/tls_wallet
如果你需要连接运行 ADB free 容器的远程主机,请将 $TNS_ADMIN/tnsnames.ora 中的 localhost 替换为远程主机的 FQDN:
sed -i 's/localhost/my.host.com/g' $TNS_ADMIN/tnsnames.ora
可用 TNS 别名
与云端自治 AI 数据库类似,你可以使用以下任意别名连接 ADB free 容器。
MYATP TNS 别名
mTLS 连接请使用以下别名:
TLS 连接请使用以下别名:
MYADW TNS 别名
mTLS 连接请使用以下别名:
TLS 连接请使用以下别名:
TNS 别名与其对应连接字符串的映射关系可在 $TNS_ADMIN/tnsnames.ora 文件中查看。
免 TLS ***连接
如需在不使用***的情况下建立连接,你需要将容器启动时生成的自签名证书更新到客户端的信任库中。
Linux 系统信任库
从容器中复制 /u01/app/oracle/wallets/tls_wallet/adb_container.cert 文件,并更新系统信任库:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet/adb_container.cert adb_container.cert
sudo cp adb_container.cert /etc/pki/ca-trust/source/anchors
sudo update-ca-trust
macOS 系统信任库
对于 macOS 系统,请参考https://support.apple.com/guide/key***access/add-certificates-to-a-key***kyca2431/mac将证书添加到钥匙串中。
JDK 信任库
如需更新 JDK 信任库,你可以使用 keytool 工具:
Linux 示例:
sudo keytool -import -alias adb_container_certificate -keystore $JAVA_HOME/lib/security/cacerts -file adb_container.cert
macOS 示例:
sudo keytool -import -alias adb_container_certificate -file adb_container.cert -keystore /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib/security/cacerts
SQL Developer 桌面应用
从容器中复制***并将其打包为 zip 文件:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
zip -j /scratch/tls_wallet.zip /scratch/tls_wallet/*
***打包完成后,打开 SQL Developer 并执行以下步骤:
wallet.zip 文件路径SQL*Plus
本示例使用别名 myatp_low 建立连接:
sqlplus admin/ @myatp_low
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jul 26 22:38:27 2023
Version 21.9.0.0.0
Last Successful login time: Wed Jul 26 2023 16:36:16 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.1.0
SQL>
Python
安装 Oracle Database 的 python-oracledb 驱动:
python3 -m pip install oracledb
import oracledb
conn = oracledb.connect(user="admin", password=" ", dsn="myadw_medium", config_dir="/scratch/tls_wallet", wallet_location="/scratch/tls_wallet", wallet_password="***")
cr = conn.cursor()
r = cr.execute("SELECT 1 FROM DUAL")
print(r.fetchall())
>> [(1,)]
使用 Admin 用户身份连接数据库:
sqlplus admin/ @myatp_medium
按如下所示创建用户:
CREATE USER APP_USER IDENTIFIED BY " " QUOTA UNLIMITED ON DATA;
-- 添加角色
GRANT CONNECT TO APP_USER;
GRANT CONSOLE_DEVELOPER TO APP_USER;
GRANT DWROLE TO APP_USER;
GRANT RESOURCE TO APP_USER;
-- 启用 REST
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'APP_USER',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'app_user',
p_auto_rest_auth=> TRUE
);
commit;
END;
/
-- 配置配额
ALTER USER APP_USER QUOTA UNLIMITED ON DATA;
https://www.oracle.com/database/cloud-migration/estate-explorer/ 是一款工具,可帮助用户以程序化方式评估多组 Oracle 数据库迁移到 Oracle 自治 AI 数据库的就绪度。OEE 的输出会提供被测数据库组的整体资产概览,根据数据库与 ADB 前置条件的匹配度进行排序,并给出所需修复工作的分级相对工作量评估。
OEE APEX 应用已预先安装在 adb-free 镜像中,开箱即可使用。
启动 OEE 应用需要执行以下步骤:
MPACK_OEE 用户设置密码:ALTER USER MPACK_OEE IDENTIFIED BY
https://localhost:8443/ords/apexMPACK_OEE APEX 工作区[!IMPORTANT] 19c 镜像仅针对
linux/amd64构建。在 ARM64 设备上,需要搭配 Docker 使用 Colima 来模拟x86_64环境。
使用 Colima 搭配 Docker 模拟 x86_64 环境,同时将所有容器命令中的 podman 替换为 docker 即可。
brew install docker
brew install docker-compose
brew install colima
brew install qemu
[!IMPORTANT] 在 ARM 架构上运行 x86_64 容器可能出现转译问题。为提升稳定性,需为虚拟机分配更多内存。
colima start --cpu 4 --memory 10 --arch x86_64
[!IMPORTANT] Rosetta 可为 ARM 架构提供 x86_64 转译能力。该配置文件使用 Apple 虚拟化框架并分配更多内存以提升稳定性。
[!WARNING]
colima delete会删除当前的 Colima 虚拟机/配置文件。请在执行以下命令前,备份其中存储的所有数据。
softwareupdate --install-rosetta
colima stop
colima delete
colima start --cpu 4 --memory 10 --arch x86_64 --vm-type vz --vz-rosetta
# 验证 Colima 正在使用新配置文件
docker context ls
colima status
podman machine init
podman machine set --cpus 4 --memory 8192
podman machine start
本项目欢迎社区贡献。在提交 Pull Request 前,请查阅我们的贡献指南。
请参考安全指南,了解我们负责任的安全漏洞披露流程。
版权所有 © 2026 Oracle 及关联方。 基于 https://oss.oracle.com/licenses/upl 发布。
来自真实用户的反馈,见证轩辕镜像的优质服务