必须选对CPU架构镜像、配足内存(≥4GB)、挂载可写路径至/opt/oracle/oradata,且需等待初始化完成(日志出现“Database ready to use”)才能连接;ARM64与x86_64镜像不兼容,Docker Desktop需调高内存限制,挂载路径权限须为777。
不能直接用最新镜像一键跑起来,必须选对镜像、配够资源、挂对路径,否则容器会卡在初始化阶段不动,或者启动后连不上。
ARM64(如 M1/M2/M3/M4 Mac)和 x86_64(Intel/AMD 服务器或虚拟机)镜像不兼容。运行 uname -m 查看架构:
aarch64 或 arm64 → 必须用 ARM64 镜像,例如:docker.cnb.cool/kangaroohy/open-source/images/oracle:19.19.0-ee-arm64
x86_64 → 可用阿里云的通用镜像:registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
exec format error,基本就是架构 mismatch,别硬等日志,立刻换镜像Oracle 19c 容器初始化时会检查 cgroup 内存限制。Docker Desktop 默认只给 2GB,docker run 启动后日志里反复出现:
cat: /sys/fs/cgroup/memory/memory.limit_in_bytes: No such file or directory
或卡在 Initializing Oracle 不动,说明内存不足。解决方式:
--memory=4g 参数,第三方镜像通常不响应该参数,必须调高 Docker daemon 总限制镜像默认把数据存在 /opt/oracle/oradata,但若挂载宿主机目录权限不对,初始化直接失败,日志停在 Creating and starting Oracle instance。
正确做法:
mkdir -p /mydata/oracle/oradata && chmod 777 /mydata/oracle/oradata
-v /mydata/oracle/oradata:/opt/oracle/oradata(不是 /oracle-data 或 /oradata)~/oracle-data),可能触发权限拦截ls -ld /opt/oracle/oradata,应显示 drwxrwxrwx
容器 docker run 返回 container ID 只代表进程启动了,不代表数据库就绪。常见误判:
docker ps 显示 Up 状态 ≠ 数据库能连docker logs oracle 里看到 ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN 之后,还要继续等 15–25 分钟Database ready to use. Enjoy! ;) 或 Completed database initialization
sqlplus sys/ORACLE_PWD@localhost:1521/ORCLCDB as sysdba 才大概率成功最常被忽略的一点:Oracle 19c 镜像初始化是单线程阻塞式操作,期间 CPU 占用低、日志几乎静默,容易误以为卡死而反复重启容器——其实它就在那儿默默建库,别动,等满 30 分钟再查日志。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)