如何打造一个非CDB的Oracle 19c docker 镜像

IT疑难杂症诊疗室 10w+人浏览 693人参与

默认创建的19c 镜像都包含了pdb,后续通过这个image创建的docker,是无法去掉这个pdb的,有时,我们希望创建的DOCKER,不包含PDB,能否做到呢?

答案是肯定的
步骤如下:

1.预备姿势

   自己如何动手创建oracle 19c 19.3标准版2 DOCKER 镜像

2.进入本地docker 仓库目录

cd docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0


3.修改文件 dbca.rsp.tmpl
  
  vim dbca.rsp.tmpl
   ...

   createAsContainerDatabase=false
   numberOfPDBs=0
   
   ## 注释掉
   #pdbName=###ORACLE_PDB###
   #pdbAdminPassword=###ORACLE_PWD###


   # em关掉
   emConfiguration=NONE

4. 修改文件 createDB.sh
    在同一目录,如下语句:
  
    去掉下面这两行:
    ALTER PLUGGABLE DATABASE $ORACLE_PDB SAVE STATE;
    EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED (TRUE);
5. 修改文件 checkDBStatus.sh:
   在同一目录,如下语句:
   
   v\\$pdbs
   改为
   v\\$database


6. 创建镜像
进入docker-images/OracleDatabase/SingleInstance/dockerfiles 目录,执行命令:


./buildContainerImage.sh -v 19.3.0 -t oracle/database:19.3.0-se2n -s

7.验证

   运行docker,然后进行docker,检查数据库情况。具体步骤,可以参见前面的内容:

   oracle linux 9.6上安装oracle database 19.3 标准版 dockerhttps://blog.youkuaiyun.com/cqsztech/article/details/155558694?spm=1011.2415.3001.5331

  

<think>好的,我现在需要帮助用户找到如何在Docker容器中运行Oracle Database 19c的信息或教程。首先,用户的问题是关于在Docker里运行Oracle 19c,所以我应该先回忆一下相关的步骤和资源。 根据之前的引用内容,特别是引用[1],提到Oracle官方已经发布了19.3的Dockerfile,这对于在笔记本上安装Oracle数据库来说是最简单的方式之一。所以用户可能需要从官方渠道获取Dockerfile和相关安装文件。 接下来,我需要整理步骤。首先,用户需要下载Oracle 19c的安装文件。引用[1]中提到需要下载ORACLE 19.3.0 FOR LINUX安装盘,这可能是指用户需要从Oracle官网下载必要的二进制文件,比如LINUX.X64_193000_db_home.zip,这应该是官方要求的安装包。 然后,用户需要克隆Oracledocker-images仓库。根据引用[3],使用git clone命令克隆https://github.com/oracle/docker-images.git,这个仓库里应该包含构建Docker镜像所需的文件结构。用户需要把下载的安装包放到正确的目录下,比如docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/,这样才能让构建脚本找到它。 接下来是构建Docker镜像,使用buildDockerImage.sh脚本,并且指定版本为19c。这里可能需要用户给予执行权限,或者直接运行脚本。构建过程可能会比较耗时,取决于用户的网络和系统性能。 构建完成后,运行容器时需要注意端口映射和持久化存储。用户需要映射1521和5500端口,分别用于数据库连接和EM Express。另外,使用-v参数将数据卷挂载到宿主机,这样可以持久化数据库文件,避免容器删除后数据丢失。 启动容器后,可能需要查看日志以确认数据库是否成功启动。使用docker logs -f <容器名>来跟踪日志,直到看到数据库就绪的信息。这可能涉及到等待一段时间,直到初始化完成。 然后,用户需要连接到数据库。引用[2]中的例子使用了docker exec命令进入容器并运行sqlplus,这里可能需要以sysdba身份登录,如引用[4]所示,使用sqlplus / as sysdba。用户可能需要修改密码或者创建新用户,根据需要进行配置。 此外,用户可能关心如何优化容器性能,或者如何处理常见问题,比如内核参数设置,这在引用[3]中提到过,可能需要设置内核参数以确保数据库正常运行。不过具体的参数可能在Docker镜像构建过程中已经处理好了,或者需要用户根据宿主机的情况进行调整。 最后,用户可能需要相关的教程链接或官方文档,确保信息的准确性。同时,生成的问题需要围绕用户可能遇到的后续步骤,比如优化、备份恢复、性能调优等,以及如何访问管理工具如EM Express,或者如何处理常见的连接问题。 总结一下,步骤应该是:下载安装文件,克隆仓库,放置文件,构建镜像,运行容器,连接数据库。同时,注意事项包括数据持久化、端口映射、日志查看和权限问题。用户可能需要这些步骤的详细说明,以及常见问题的解决方法。</think>### 在Docker中运行Oracle Database 19c的步骤 #### 1. **准备Oracle安装文件** - 从Oracle官网下载数据库安装包 `LINUX.X64_193000_db_home.zip`[^1],需注册Oracle账户。 - 将文件放置在指定目录: ```bash git clone https://github.com/oracle/docker-images.git cp LINUX.X64_193000_db_home.zip docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/ ``` #### 2. **构建Docker镜像** - 进入目录并执行构建脚本: ```bash cd docker-images/OracleDatabase/SingleInstance/dockerfiles ./buildDockerImage.sh -v 19.3.0 -e ``` - `-e` 表示企业版,镜像构建完成后会显示 `oracle/database:19.3.0-ee`。 #### 3. **运行Oracle容器** ```bash docker run -d \ --name oracle19c \ -p 1521:1521 \ -p 5500:5500 \ -v /path/on/host:/opt/oracle/oradata \ oracle/database:19.3.0-ee ``` - `-v` 实现数据持久化,避免容器删除后数据丢失[^1]; - 默认账号:`sys as sysdba`,初始密码需从容器日志中获取。 #### 4. **查看初始化日志** ```bash docker logs -f oracle19c ``` 日志中出现 `DATABASE IS READY TO USE!` 表示启动完成[^4]。 #### 5. **连接数据库** - 进入容器并登录SQL*Plus: ```bash docker exec -it oracle19c sqlplus sys@ORCLCDB as sysdba ``` - 或通过宿主机客户端工具连接: ```bash sqlplus sys@//localhost:1521/ORCLCDB as sysdba ``` --- ### 关键注意事项 1. **资源要求**:建议分配至少4GB内存和20GB磁盘空间[^3]; 2. **内核参数**:若宿主机为Linux,需设置 `shmmax` 和 `sem` 参数; 3. **许可证限制**:Docker镜像仅用于开发和测试,生产环境需购买商业许可[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值