如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 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%E4%B8%AD%EF%BC%8C%E9%80%89%E6%8B%A9%E8%A6%81%E4%BD%BF%E7%94%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%88%E6%9C%AC%E5%92%8C%E5%AF%B9%E5%BA%94%E7%9A%84%E9%95%9C%E5%83%8F%E3%80%82
我们使用以下命名约定:
| 数据库版本 | 最新镜像标签 | 特定发布镜像标签 | 支持的架构 |
|---|---|---|---|
| 26ai | latest-26ai | 26.2.4.2-26ai | linux/arm64 和 linux/amd64 |
| 23ai | latest-23ai | 25.9.3.2-23ai | linux/arm64 和 linux/amd64 |
| 19c | latest | 26.2.4.2 | linux/amd64 |
[!NOTE] ADBS-25.9.3.2-23ai 是 23ai 的最后一个发布版本。我们现在仅发布 26ai 和 19c 的 adb-free 镜像。
[!NOTE] 通常,镜像除了发布版本标签外,还会有额外的“重要特性”标签。例如
adb-free:select_ai_agent。
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 虚拟机的说明,请阅读 FAQ。
[!NOTE] 尽管说明中使用
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
[!NOTE] 19c 版本请使用
ghcr.io/oracle/adb-free:latest。
容器首次启动时:
用户必须更改管理员密码。请使用环境变量 ADMIN_PASSWORD 指定密码
使用密码 WALLET_PASSWORD 生成
下表说明了传递给容器的环境变量
| 环境变量 | 描述 |
|---|---|
| WORKLOAD_TYPE | 可以是 ATP(事务处理)或 ADW(数据湖仓)。默认值为 ATP |
| DATABASE_NAME | 数据库名称只能包含字母数字字符。如果未提供,数据库将根据传递的工作负载类型命名为 MYATP 或 MYADW |
| ADMIN_PASSWORD | 管理员用户密码长度必须在 12 到 30 个字符之间,且必须包含至少一个大写字母、一个小写字母和一个数字。密码不能包含用户名 |
| WALLET_PASSWORD | ***密码长度至少为 8 个字符,且必须包含字母字符以及数字或特殊字符 |
| ENABLE_ARCHIVE_LOG | 用于启用数据库中的归档日志。默认值为 True。要关闭归档日志,请将值设置为 False |
[!NOTE] 对于 OFS 挂载,容器应以
SYS_ADMIN权限启动。此外,虚拟设备/dev/fuse必须可访问。
端口
请注意以下转发到容器进程的端口
| 端口 | 描述 |
|---|---|
| 1521 | TLS |
| 1522 | mTLS |
| 8443 | ORDS / APEX 和 Database Actions 的 HTTPS 端口 |
| 27017 | Mongo API |
HTTP 代理
如果您位于企业代理之后,有两种方法可以配置数据库以使用代理设置
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 执行数据库操作
为方便使用 adb-cli,您可以定义以下别名
alias adb-cli="podman exec 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"
修改密码
要修改管理员用户的密码,请使用以下命令
adb-cli change-password --database-name "MYADW" --old-password "Welcome_1234" --new-password "Welcome_12345"
挂载卷
要在容器重启和删除后保留数据,您应在 /u01/data 挂载卷,并按照容器间迁移 PDB 数据的文档中提到的步骤操作
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。
| 应用程序 | URL |
|---|---|
| APEX | https://localhost:8443/ords/apex |
| Database Actions | https://localhost:8443/ords/sql-developer |
[!NOTE] 对于使用
adb-cli add-database命令插入的额外数据库,请分别使用 URL 格式https://localhost:8443/ords/{database_name}/apex和https://localhost:8443/ords/{database_name}/sql-developer访问 APEX 和 Database Actions。
***设置
容器中,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 别名
与云环境中的 Autonomous AI Database 类似,可使用以下任一别名连接 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,请参考 支持指南 将证书添加到钥匙串。
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 桌面应用
从容器复制***并压缩:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
zip -j /scratch/tls_wallet.zip /scratch/tls_wallet/*
压缩***后,打开 SQL Developer 并按照以下步骤操作:
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 数据库的 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;
Oracle Estate Explorer 是一款帮助客户通过编程方式评估 Oracle 数据库组向 Oracle Autonomous AI Database 迁移就绪性的工具。OEE 的输出提供测试数据库组的高级资产概述,根据与 ADB 先决条件的对齐程度进行排序,并给出所需 remediation 的相对工作量评级。
OEE APEX 应用已预装在 adb-free 镜像中,可开箱即用。
启动 OEE 应用需执行以下步骤:
MPACK_OEE 用户设置密码:ALTER USER MPACK_OEE IDENTIFIED BY
MPACK_OEE APEX 工作区[!IMPORTANT] 23ai 镜像是多架构的,原生支持 linux/arm64 和 linux/amd64 CPU 架构
使用 colima + docker 模拟 x86_64 架构。所有命令中将 podman 替换为 docker。
brew install docker
brew install docker-compose
brew install colima
brew reinstall qemu
[!IMPORTANT] 运行 x86_64 架构容器时,ARM 架构的指令转换可能存在问题。建议为虚拟机分配更高内存以避免此类问题
colima start --cpu 4 --memory 10 --arch x86_64
[!IMPORTANT] 运行x86_64架构的容器在为ARM翻译指令时可能会遇到问题。我们为虚拟机分配更高的内存以避免此类问题
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
本项目欢迎社区贡献。提交拉取请求前,请查看我们的贡献指南
有关我们负责任的安全漏洞披露流程,请查阅安全指南
版权所有 (c) 2026 Oracle 及其关联公司。
根据 Universal Permissive License v1.0 发布,详见 。
来自真实用户的反馈,见证轩辕镜像的优质服务