专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

gvenzl/oracle-xe Docker 镜像 - 轩辕镜像

oracle-xe
gvenzl/oracle-xe
Oracle数据库XE版(包括21c、18c、11g版本)面向所有用户开放使用!若需了解Oracle数据库23c免费版的相关信息,可通过gvenzl/oracle-free获取详细内容,该资源提供了23c免费版的功能介绍及使用指南。
354 收藏0 次下载
📦 一套镜像服务,解决研发 / 测试 / 生产三套环境
中文简介版本下载
📦 一套镜像服务,解决研发 / 测试 / 生产三套环境

oci-oracle-xe:Oracle Database Express Edition 容器镜像

Oracle Database Express Edition(XE)的容器/ Docker 镜像,兼容 podman 和 docker,可互换使用。

支持的标签及对应 Dockerfile 链接

各版本标签按 Oracle 数据库版本(21c、18c、11g)分类,包含不同镜像变体(基础版、slim 版、full 版及 faststart 版):

  • 21c

    • 基础版:latest, 21, 21.3.0(Dockerfile)
    • faststart 版:latest-faststart, 21-faststart, 21.3.0-faststart(Dockerfile)
    • slim 版:slim, 21-slim, 21.3.0-slim(Dockerfile)
    • slim-faststart 版:slim-faststart, 21-slim-faststart, 21.3.0-slim-faststart(Dockerfile)
    • full 版:full, 21-full, 21.3.0-full(Dockerfile)
    • full-faststart 版:full-faststart, 21-full-faststart, 21.3.0-full-faststart(Dockerfile)
  • 18c

    • 基础版:18, 18.4.0(Dockerfile)
    • faststart 版:18-faststart, 18.4.0-faststart(Dockerfile)
    • slim 版:18-slim, 18.4.0-slim(Dockerfile)
    • slim-faststart 版:18-slim-faststart, 18.4.0-slim-faststart(Dockerfile)
    • full 版:18-full, 18.4.0-full(Dockerfile)
    • full-faststart 版:18-full-faststart, 18.4.0-full-faststart(Dockerfile)
  • 11g R2

    • 基础版:11, 11.2.0.2(Dockerfile)
    • faststart 版:11-faststart, 11.2.0.2-faststart(Dockerfile)
    • slim 版:11-slim, 11.2.0.2-slim(Dockerfile)
    • slim-faststart 版:11-slim-faststart, 11.2.0.2-slim-faststart(Dockerfile)
    • full 版:11-full, 11.2.0.2-full(Dockerfile)
    • full-faststart 版:11-full-faststart, 11.2.0.2-full-faststart(Dockerfile)

快速启动

非持久化数据库容器

数据在容器删除后丢失,但容器重启时保留:

shell
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<你的密码> ***
持久化数据库容器

数据在容器生命周期内永久保留(需挂载卷):

shell
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<你的密码> -v oracle-volume:/opt/oracle/oradata ***
11g R2 持久化容器

11g R2 数据路径不同,卷挂载位置需调整:

shell
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<你的密码> -v oracle-volume:/u01/app/oracle/oradata ***:11
重置 SYS/SYSTEM 密码
shell
docker exec <容器名或ID> resetPassword <新密码>
Apple M 芯片适配

Oracle 数据库暂无 ARM 架构版本,无法直接通过 Docker Desktop 在 Apple M 芯片上运行。可通过 colima 模拟 x86_64 环境:

  1. 安装 colima
  2. 启动 colima:colima start --arch x86_64 --memory 4(分配 4GB 内存)
  3. 按常规方式启动容器

使用该镜像的用户

以下是部分使用该镜像的组织/项目(标注已迁移至 gvenzl/oracle-free):

  • Airbyte
  • Apache Spark
  • Benthos
  • Ebean
  • Eclipse Vert.x
  • Flowable
  • GeoTools
  • Hibernate
  • Hibernate Reactive
  • Hibernate Search
  • jOOQ
  • Liquibase
  • Micronaut Data
  • Quarkus
  • Ruby API for Oracle PL/SQL
  • Ruby on Rails ActiveRecord adapter
  • Rucio by CERN
  • SchemaCrawler
  • Spring Data JDBC
  • Sqitch
  • Testcontainers
  • Upscheme
  • utPLSQL

镜像使用说明

版本间的细微差异
  • 11g R2(11.2.0.2):数据文件路径为 /u01/app/oracle/oradata/XE,卷必须挂载至 /u01/app/oracle/oradata。
环境变量

环境变量仅在数据库首次初始化(容器首次启动)时生效,用于自定义配置。

变量名说明必要性
ORACLE_PASSWORD指定 SYS 和 SYSTEM 用户的初始密码必选(首次启动)
ORACLE_RANDOM_PASSWORD设为非空值(如 yes),自动生成随机密码(输出至日志:ORACLE PASSWORD FOR SYS AND SYSTEM: ...)可选
ORACLE_DATABASE18c+ 支持,创建指定名称的可插拔数据库(如未指定,默认使用 XEPDB1)可选(18c+)
APP_USER创建应用用户(18c+ 默认在 XEPDB1 中;若指定 ORACLE_DATABASE,则同时在该库中创建)可选(需配合密码变量)
APP_USER_PASSWORD为 APP_USER 指定密码可选(需配合 APP_USER)
GitHub Actions 集成

可作为 Service Container 在 GitHub Actions 工作流中使用。示例配置:

yaml
services:
  oracle:  # 服务标签(用于容器间访问)
    image: ***:latest  # 镜像及标签
    env:  # 环境变量配置
      ORACLE_RANDOM_PASSWORD: true  # 随机生成密码
      APP_USER: my_user  # 创建应用用户
      APP_USER_PASSWORD: my_password  # 应用用户密码
    ports:
      - 1521:1521  # 端口映射
    options: >-  # 健康检查配置
      --health-cmd healthcheck.sh
      --health-interval 10s
      --health-timeout 5s
      --health-retries 10

连接参数:

  • 主机名:oracle(容器内)/ localhost(宿主机)
  • 端口:1521
  • 服务名:XEPDB1(默认可插拔数据库)
  • 管理员用户:system,密码通过 ORACLE_PASSWORD 或日志获取
  • 应用用户:my_user,密码 my_password
  • JDBC 连接串示例:jdbc:oracle:thin:@localhost:${{ job.services.oracle.ports[1521] }}/XEPDB1(动态端口)
镜像变体
变体名称标签后缀说明适用场景
Slim-slim最小化镜像,仅保留核心功能,牺牲部分扩展能力对镜像体积敏感,无需高级功能的场景
基础版无平衡体积与功能,推荐大多数场景使用常规开发、测试
Full-full完整功能镜像,包含 Oracle 数据库全部默认组件需要扩展或自定义配置的场景
Faststart*-faststart预初始化数据库,镜像体积较大但启动速度极快自动化测试(需频繁启停容器,无需持久化数据)
数据库用户管理

通过 createAppUser 命令可创建额外应用用户,语法:

shell
docker exec <容器名或ID> createAppUser <用户名> <密码> [<目标PDB>]  # 目标PDB默认XEPDB1,11g忽略

示例:在 XEPDB1 中创建用户 app_user,密码 app_pwd

shell
docker exec my-oracle createAppUser app_user app_pwd XEPDB1
容器密钥

敏感信息(如密码)可通过文件传递,在环境变量名后添加 _FILE 后缀,从容器内文件读取值。支持的变量:APP_USER_PASSWORD_FILE、ORACLE_PASSWORD_FILE、ORACLE_DATABASE_FILE。

示例:从文件 /run/secrets/oracle-passwd 读取密码

shell
docker run --name some-oracle -e ORACLE_PASSWORD_FILE=/run/secrets/oracle-passwd -d ***
初始化脚本

首次启动数据库时,容器会自动执行 /container-entrypoint-initdb.d 目录下的脚本(支持 *.sql, *.sql.gz, *.sql.zip, *.sh),按字母顺序递归执行(子目录亦会遍历)。

  • SQL 脚本:通过 SQL*Plus 以 SYS 用户执行(连接至 XE 实例),需在脚本中手动切换至目标用户/数据库。
  • Shell 脚本:可执行脚本(带 x 权限)在新进程中运行;非可执行脚本会被 source 到当前进程(可能影响环境,建议设为可执行)。

示例:创建用户并初始化数据模型

  1. 本地脚本目录结构:
    init_scripts/
    ├── 1_create_user.sql   # 创建用户
    └── 2_init_data.sh      # 下载并执行数据脚本
    
  2. 1_create_user.sql 内容:
    sql
    ALTER SESSION SET CONTAINER=XEPDB1;  # 切换至可插拔数据库
    CREATE USER test IDENTIFIED BY test QUOTA UNLIMITED ON USERS;
    GRANT CONNECT, RESOURCE TO test;
    
  3. 2_init_data.sh 内容(可执行):
    bash
    curl -LJO [***]   sqlplus -s test/test@//localhost/XEPDB1 @install.sql  # 以 test 用户执行脚本
    rm install.sql
    
  4. 启动容器并挂载脚本目录:
    shell
    docker run -d -p 1521:1521 -e ORACLE_RANDOM_PASSWORD=y -v ./init_scripts:/container-entrypoint-initdb.d ***:18.4.0-full
    
启动脚本

每次数据库启动后(含容器重启),容器会执行 /container-entrypoint-startdb.d 目录下的脚本(支持类型同初始化脚本)。适用于需每次启动后执行的任务(如数据同步、配置检查)。

注意:避免同时使用 /docker-entrypoint-startdb.d(兼容旧版本路径),以免脚本重复执行。

反馈

如有问题或建议,可通过 GitHub Issues 提交。

查看更多 oracle-xe 相关镜像 →
gvenzl/oracle-free logo
gvenzl/oracle-free
甲骨文数据库(Oracle Database)免费向所有人开放啦!作为全球领先的企业级关系型数据库管理系统,它凭借高性能、高可靠性与强大的安全性广泛应用于各类关键业务场景,此次免费版本旨在降低开发者、学习者及小型组织的使用门槛,让更多用户能够轻松体验其卓越的数据管理能力,助力创新与技术探索。
781M+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
gvenzl/oracle-xe
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.