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_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
容器主机名用于生成自签名 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
与云环境中的 Autonomous AI Database 类似,可使用以下任一别名连接 ADB free 容器。
mTLS 连接使用以下别名:
TLS 连接使用以下别名:
mTLS 连接使用以下别名:
TLS 连接使用以下别名:
TNS 别名与其连接字符串的映射可在 $TNS_ADMIN/tnsnames.ora 文件中找到。
若要无***连接,需使用容器启动时生成的自签名证书更新客户端的信任库。
从容器复制 /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,请参考 支持指南 将证书添加到钥匙串。
若要更新 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
从容器复制***并压缩:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
zip -j /scratch/tls_wallet.zip /scratch/tls_wallet/*
压缩***后,打开 SQL Developer 并按照以下步骤操作:
本示例使用别名 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>
安装 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 发布,详见 。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务