温馨提示×

Ubuntu Oracle容器化部署流程是怎样的

小樊
35
2025-12-20 17:55:34
栏目: 云计算

Ubuntu 上 Oracle 容器化部署流程

一 环境准备

  • 安装 Docker(Ubuntu 20.04/22.04 示例)
    • 更新索引并安装:sudo apt-get update && sudo apt-get install -y docker.io
    • 启动与开机自启:sudo systemctl enable --now docker
    • 可选:将当前用户加入 docker 组以避免每次使用 sudo(newgrp docker)
  • 资源建议
    • 内存不少于4 GB(XE/11g 可低配,企业版建议8 GB+
    • 磁盘预留**20 GB+**用于数据与日志

二 选择镜像与版本

  • 常见可用镜像与特性
    • Oracle 官方预览镜像:store/oracle/database-enterprise:12.2.0.1(企业版 12cR2,体积大,首次拉取较慢)
    • 社区版 XE 11g:oracleinanutshell/oracle-xe-11g(轻量,适合测试;默认开启 8080 管理页面)
    • 社区版 11g 通用:jaspeen/oracle-11g(首次运行自动安装 Oracle)
    • 其他社区 XE 11g:wnameless/oracle-xe-11g(经典镜像,带 8080 控制台)
  • 选型建议
    • 生产/兼容性优先:选择官方企业版镜像(注意许可)
    • 快速试用/CI:选择 XE 11g 或自动化安装镜像

三 部署与持久化

  • 通用运行模板
    • 命名容器:–name oracle
    • 端口映射:-p 1521:1521(数据库),企业版可加 -p 5500:5500(EM Express)
    • 数据持久化:-v 宿主机目录:/u01/app/oracle/oradata(企业版)或 -v 卷名:/home/oracle/app/oracle/oradata(XE)
    • 权限:部分镜像需 --privileged 才能正常初始化(如 jaspeen/oracle-11g)
  • 示例命令
    • Oracle 12c 企业版(开发与演示)
      • 拉取:docker pull store/oracle/database-enterprise:12.2.0.1
      • 运行:docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 -v oracle12c_data:/u01/app/oracle/oradata store/oracle/database-enterprise:12.2.0.1
    • Oracle XE 11g(轻量测试)
      • 拉取:docker pull oracleinanutshell/oracle-xe-11g
      • 持久化卷:docker volume create oracle-xe
      • 运行(开启远程):docker run -d --name oracle-xe -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true -v oracle-xe:/home/oracle/app/oracle/oradata oracleinanutshell/oracle-xe-11g
    • Oracle 11g 社区版(首次自动安装)
      • 拉取:docker pull jaspeen/oracle-11g
      • 运行(自动安装到 /opt/oracle,挂载宿主机目录):docker run --privileged --name oracle11g -p 1521:1521 -v /opt/oracle:/install jaspeen/oracle-11g
  • 备注
    • XE 11g 的管理控制台默认端口为8080,如需访问请额外映射 -p 8080:8080

四 初始化与连接验证

  • 进入容器
    • docker exec -it oracle-db bash(或 oracle-xe/oracle11g)
  • 登录数据库
    • 以 sysdba 登录:sqlplus / as sysdba
    • XE 默认账户:system/oracle;服务名:XE
  • 常用初始化动作
    • 解锁演示用户(XE 常见):alter user scott account unlock;
    • 修改密码:alter user scott identified by tiger;
    • 创建业务用户与授权:create user app identified by ********; grant connect,resource to app;
  • 远程连接串示例
    • 主机:<你的 Ubuntu IP>
    • 端口:1521
    • 服务名:XE(企业版以实际 SID/Service 为准)
    • 账号:system/oracle 或自建账号

五 运维与安全建议

  • 数据持久化与备份
    • 始终使用卷或宿主机目录挂载 /u01/app/oracle/oradata(企业版)或 /home/oracle/app/oracle/oradata(XE)
    • 定期备份数据卷(例如 docker run --rm --volumes-from oracle-db -v $PWD:/backup ubuntu tar czf /backup/oradata-$(date +%F).tgz /u01/app/oracle/oradata)
  • 资源与性能
    • 限制容器内存/CPU(–memory、–cpus),避免影响宿主机
    • 生产不建议使用 --privileged,优先使用最小权限与官方镜像
  • 网络与合规
    • 仅开放必要端口(如 1521),避免将 8080 暴露公网
    • 企业版镜像许可严格,生产部署请确认授权与合规性
  • 升级与迁移
    • 采用 Data Pump(expdp/impdp)进行版本间迁移
    • 保持镜像与宿主机内核/驱动版本兼容

以上流程覆盖在 Ubuntu 上用 Docker 快速拉起 Oracle(含企业版 12c 与 XE 11g 等)的关键步骤,并兼顾了持久化、初始化与远程访问验证。

0