Oracle AI Database 26ai Free 是业界领先数据库的免费版本。Oracle AI Database 26ai Free容器镜像包含基于Oracle Linux 8基础镜像的Oracle AI Database 26ai Free。该镜像支持两种版本:
Full 镜像:支持Oracle AI Database 26ai Free提供的所有数据库功能。Lite 镜像:更小的镜像大小,包含数据库的精简安装。Lite镜像的存储占用比Full镜像更小(约减少80%的镜像大小),且镜像拉取时间显著缩短。此镜像适用于CI/CD场景以及不需要高级数据库功能的简单用例。有关Oracle AI Database 26ai Free的更多信息,请参见:[***]
Oracle AI Database 26ai Free容器镜像包含预构建数据库,因此启动时间非常快。快速启动在CI/CD场景中很有帮助。
要启动Oracle AI Database Free容器,请运行以下命令,其中<container_name>可以是容器的任何自定义名称:
podman run -d --name <container_name> container-registry.oracle.com/database/free:latest
容器启动时,会为SYS、SYSTEM和PDBADMIN用户生成随机密码,称为默认密码。
[!NOTE]
- 本文档中,尖括号
<>内的文字表示代码行中的变量。- 要更改默认密码,请参见:“更改SYS用户的默认密码”
- 要了解高级用例,请参见:“自定义配置”
- 本文档使用
podman作为推荐的容器运行时,但使用现代等效命令也预期可正常工作。- Oracle AI Database 26ai Free不再支持Oracle Enterprise Manager Database Express(OEM DB Express)。请改用SQL Developer。
当podman ps输出的STATUS字段显示(healthy)时,Oracle AI Database即准备就绪可供使用。
为便于自定义配置,Oracle AI Database容器提供了启动容器时可使用的配置参数。例如,以下是支持所有自定义配置的详细podman run命令:
podman run --name <container_name> \
-P | -p <host_port>:1521 \
-e ORACLE_PWD=<your_password> \
-e ORACLE_CHARACTERSET=<character_set> \
-e ENABLE_ARCHIVELOG=true \
-e ENABLE_FORCE_LOGGING=true \
-v <host_directory_or_volume>:/opt/oracle/oradata \
container-registry.oracle.com/database/free:latest
--name: 容器名称(默认:自动生成)-P | -p: 主机端口到容器端口的映射。仅暴露一个端口:1521(Oracle监听器)-e ORACLE_PWD: Oracle AI Database的SYS、SYSTEM和PDB_ADMIN用户密码(默认:自动生成)-e ORACLE_CHARACTERSET: 创建数据库时使用的字符集(默认:AL32UTF8)-e ENABLE_ARCHIVELOG: 创建数据库时启用归档日志模式(默认:true)-e ENABLE_FORCE_LOGGING: 创建数据库时启用强制日志记录模式(默认:true)-v <host_directory_or_volume>:/opt/oracle/oradata: 数据库使用的数据卷。必须可由容器内的Unix“oracle”用户(uid: 54321)写入。如果省略,数据库将不会在容器重建后持久化。-v <host_directory>:/opt/oracle/scripts/startup: 可选:包含数据库启动后要运行的自定义脚本的卷。详情见下文“在设置后和启动时运行脚本”部分。-v <host_directory>:/opt/oracle/scripts/setup: 可选:包含数据库设置后要运行的自定义脚本的卷。详情见下文“在设置后和启动时运行脚本”部分。ORACLE_CHARACTERSET:此参数修改数据库的字符集。该参数为可选,默认值设为AL32UTF8。请注意,仅在创建新数据库时(即运行镜像时使用-v选项挂载主机系统目录,参见“挂载Podman卷/主机目录以实现数据库持久化”部分),此参数才会设置字符集。
ORACLE_PWD:此参数修改SYS、SYSTEM和PDBADMIN用户的密码。该参数为可选,默认值随机生成。
[!NOTE]
使用此选项会将密码暴露为容器环境变量。因此,建议使用下文描述的Podman secrets。
SYS、SYSTEM和PDBADMIN用户的密码,请创建名为oracle_pwd的secret和用于加密密码的密钥oracle_pwd_priv_key。命令如下:
mkdir /opt/.secrets/
cd /opt/.secrets
openssl genrsa -out key.pem
openssl rsa -in key.pem -out key.pub -pubout
/opt/.secrets/pwdfile.txtvi /opt/.secrets/pwdfile.txt
openssl pkeyutl -in /opt/.secrets/pwdfile.txt -out /opt/.secrets/pwdfile.enc -pubin -inkey /opt/.secrets/key.pub -encrypt
rm -rf /opt/.secrets/pwdfile.txt
podman secret create oracle_pwd /opt/.secrets/pwdfile.enc
podman secret create oracle_pwd_priv_key /opt/.secrets/key.pub
--secret选项将上述创建的oracle_pwd和oracle_pwd_priv_key secrets传递给容器:podman run --name <container_name> --secret=oracle_pwd --secret=oracle_pwd_priv_key container-registry.oracle.com/database/free:latest
/opt/oracle/oradata位置。这两个选项的区别如下:
/opt/oracle/oradata位置挂载Podman卷,则该卷会预填充镜像中已存在的数据文件。此时,启动速度会非常快,类似于未挂载卷时启动镜像。这些数据文件存在于镜像中是为了实现数据库的快速启动。$ podman run -d --name <container_name> \
-v <volume_name>:/opt/oracle/oradata \
container-registry.oracle.com/database/free:latest
/opt/oracle/oradata位置挂载主机系统目录,会发生以下两种情况:
/opt/oracle/oradata处的文件,数据库启动速度会非常快。/opt/oracle/oradata处的数据文件会被覆盖,将开始新数据库的设置。全新数据库的设置需要相当长的时间(约10分钟)。$ podman run -d --name <container_name> \
-v <host_directory>:/opt/oracle/oradata \
container-registry.oracle.com/database/free:latest
[!NOTE]
清理已挂载的主机目录可通过进入目录位置并执行
rm -rf * .*完成。
如果未使用“自定义配置”部分中描述的-e选项提供密码,容器首次启动时会为数据库生成随机密码。要更改这些账户的密码,请使用podman exec命令运行容器中的setPassword.sh脚本。注意,运行脚本前容器必须处于运行状态。例如:
podman exec <container_name> ./setPassword.sh <new_password>
可以使用以下命令访问数据库告警日志,其中<container_name>是容器名称:
podman logs <container_name>
当Oracle AI Database指示容器已启动且STATUS字段显示(healthy)后,客户端应用程序即可连接到数据库。
可以通过在容器内运行SQL*Plus命令连接到Oracle AI Database,使用以下命令之一:
podman exec -it <container_name> sqlplus sys/<password>@FREE as sysdba
podman exec -it <container_name> sqlplus system/<password>@FREE
podman exec -it <container_name> sqlplus pdbadmin/<password>@FREEPDB1
默认情况下,Oracle AI Database暴露1521端口用于Oracle客户端连接(使用Oracle的SQLNet协议)。可以使用SQLPlus或任何Oracle AI Database客户端软件从容器外连接到数据库。
要从容器外连接,请按照“自定义配置”部分中的详细Podman运行命令启动容器时使用-P选项。通过运行以下命令发现映射的端口:
podman port <container_name>
要使用SQL*Plus从容器外连接,请运行以下命令:
# 以sysdba身份连接到CDB$ROOT级别的数据库:
sqlplus sys/<password>@//localhost:<mapped_port>/FREE as sysdba
# 以非sysdba身份连接到CDB$ROOT级别:
sqlplus system/<password>@//localhost:<mapped_port>/FREE
# 连接到FREE数据库中的默认可插拔数据库(PDB):
sqlplus pdbadmin/<password>@//localhost:<mapped_port>/FREEPDB1
如果按照“自定义配置”部分中“挂载Podman卷/主机目录以实现数据库持久化”所述,使用挂载到容器内/opt/oracle/oradata位置的主机系统目录启动数据库,则即使容器被销毁,数据文件也会保持持久化。可以通过重用主机系统目录启动另一个使用相同数据文件的容器。
要将主机系统上的此目录重用于数据卷,请运行以下命令:
podman run -d --name <container_name> -v \
<host_directory>:/opt/oracle/oradata \
container-registry.oracle.com/database/free:latest
容器镜像可以配置为在设置后和启动时运行脚本。目前支持.sh和.sql扩展名。
/opt/oracle/scripts/setup以包含此目录中的脚本。/opt/oracle/scripts/startup以包含此目录中的脚本。数据库设置或启动后,这些文件夹中的脚本将在容器内的数据库上运行。SQL脚本以SYSDBA身份运行,shell脚本以当前用户身份运行。
为确保脚本按正确顺序运行,Oracle建议为脚本添加数字前缀。例如:01_users.sql、02_permissions.sql等。
[!NOTE]
Free和Free Lite镜像均包含预构建数据库,因此设置脚本不会运行。如果提供主机挂载点(空目录),则会开始新数据库的设置,且设置脚本将运行。
以下示例将本地目录/home/oracle/myScripts挂载到/opt/oracle/scripts/startup,然后会在此目录中搜索自定义启动脚本...
请登录使用轩辕镜像享受快速拉取体验,支持国内访问优化,速度提升
docker pull container-registry.oracle.com/database/free:23.26.1.0探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务