如何通过Docker快速部署Oracle 19c开发环境_使用官方镜像及持久化挂载

梦晨君_9135

梦晨君_9135

2026-05-29

942人浏览

原创

5分钟内可启动可用oracle 19c实例,关键在于正确拉取镜像(优先官方container-registry.oracle.com/database/enterprise:19.3.0.0)、挂载目录权限设为777且用绝对路径、oracle_pwd避免shell特殊字符、确认容器日志出现“database is ready to use!”后再连接。

能直接用官方镜像就别自己构建,5分钟内启动可用的 oracle 19c 实例是完全可行的;关键在于拉取镜像、挂载路径权限、密码格式和端口映射这四点必须一次做对,否则容器会静默失败或无法连接。

docker pull 命令该用哪个 registry 地址

优先用 Oracle 官方仓库:container-registry.oracle.com/database/enterprise:19.3.0.0。但需先登录:docker login container-registry.oracle.com(账号需在 oracle.com 注册并接受许可协议)。

如果网络受限或只想快速验证,可用可信第三方镜像,例如:registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c。注意:这类镜像未经 Oracle 官方认证,不建议用于生产或合规敏感场景。

避免使用已弃用的旧地址,如 store/oracle/database:19.0.0.0 或 oracle/database:19.3.0-ee —— 这些在 2025 年后已下线或不再更新,拉取会失败或返回 403。

-v 挂载目录权限必须是 777 且用绝对路径

Oracle 容器内以 oracle 用户运行初始化脚本,它没有 sudo 权限,也无法递归创建父目录。若宿主机挂载路径权限不足或为相对路径,你会看到:

  • mkdir: cannot create directory ‘/opt/oracle/oradata’: Permission denied
  • cat: /opt/oracle/cfgtoollogs/dbca/ORCL.log: No such file or directory

正确做法是:

用绝对路径创建并授权:sudo mkdir -p /mydata/oracle/oradata && sudo chmod 777 /mydata/oracle/oradata

挂载时写全路径:-v /mydata/oracle/oradata:/opt/oracle/oradata

不要用 ~/oradata、./data 或 /home/user/oradata(后者即使绝对路径,若用户主目录 umask 限制严,仍可能失败)。

ORACLE_PWD 环境变量不能含未转义的 shell 特殊字符

看似合法的密码如 ORACLE_PWD=oracle@2026 或 ORACLE_PWD=Orcl2026! 在 shell 中会被提前解析:! 触发历史命令扩展,$、`、" 等也会被插值,导致传入容器的实际密码被截断或报错。

Docker Image Puller
Docker Image Puller

使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。

下载

日志中典型表现是:

ERROR: Password must contain at least one lowercase letter, one uppercase letter, one digit, and one special character

但真实原因是密码根本没完整传进去。

安全又省事的做法:

  • 纯字母+数字组合,如 ORACLE_PWD=Orcl2026(满足 Oracle 密码策略且无解析风险)
  • 必须用特殊字符时,整个值用单引号包裹:-e 'ORACLE_PWD=oracle@2026'
  • 避开 ! @ $ % ^ & * ( ) ` " ' \ | ; : , . ? / 这些字符,尤其是 ! 和未引号的 $

容器启动后连不上 1521 端口?先确认监听是否就绪

Oracle 19c 容器启动后需要约 3–8 分钟完成数据库创建(取决于磁盘 I/O),期间 sqlplus 会报 ORA-12541: TNS:no listener 或连接超时,不是配置错误,只是还没好。

判断是否就绪的方法:

  • 查容器日志末尾是否有 DATABASE IS READY TO USE!(官方镜像输出)
  • 执行 docker exec -it oracle19c lsnrctl status,看到 STATUS of the LISTENER 和 READY 状态
  • 进容器跑 sqlplus / as sysdba,能执行 SELECT status FROM v$instance; 返回 OPEN

别一看到端口没响应就重试或改配置——这是最常被误判的“失败”。另外,确保宿主机防火墙放行 1521 和 5500(EM Express)端口,特别是 CentOS/RHEL 默认启用 firewalld。

真正卡住的地方往往不是命令写错,而是挂载目录权限没到位、密码被 shell 吃掉、或盯着日志等了两分钟就放弃——Oracle 初始化过程本身不可跳过,也极少报明确错误,得靠状态命令确认,而不是靠“有没有报错”来判断成功与否。

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

3269

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2348

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1280

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1218

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

1376

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

2218

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

3560

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

16295

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程