Windows Docker容器安装Oracle 19c遇INS-35180错误求助
解决Windows Docker容器中Oracle 19c安装INS-35180错误的方案
1. 调整容器隔离模式与运行权限
- 构建或启动容器时必须使用进程隔离模式,Hyper-V隔离会限制命名管道等系统资源访问,启动命令添加参数:
--isolation=process - 确保容器以管理员权限运行,Dockerfile中添加:
或运行容器时指定:USER ContainerAdministrator--user "NT AUTHORITY\SYSTEM"
2. 完善Response File配置
- 除
INVENTORY_LOCATION外,强制指定核心路径与静默安装参数,避免依赖容器未初始化组件:ORACLE_BASE=C:\app\oracle ORACLE_HOME=C:\app\oracle\product\19.0.0\dbhome_1 ORACLE_SID=ORCL SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true SHOW_PROGRESS=false - 移除所有涉及交互式弹窗的配置项,确保安装全程无交互。
3. 修正安装包路径与执行命令
- 将Oracle安装包解压到容器根目录下的临时路径(如
C:\temp\oracle_install),避免C:\Users等权限受限目录 - 执行安装时使用绝对路径,添加参数跳过系统预检查(容器环境不满足部分Oracle预设条件):
C:\temp\oracle_install\setup.exe -silent -responseFile C:\temp\oracle_install\response\db_install.rsp -ignoreSysPrereqs
4. 预配置容器内系统依赖
- 在Dockerfile的安装步骤前,初始化相关系统服务:
sc config LanmanServer start= auto net start LanmanServer sc config OracleRemExecServiceV2 start= demand - 给系统目录添加足够权限,避免exectask.exe无法读取系统库:
icacls C:\Windows\system32 /grant "Everyone:(F)" /T
5. 优化Docker构建流程
- 将安装包复制、解压步骤放在Dockerfile靠前位置,利用构建缓存减少重复操作
- 执行安装命令前添加延时,给容器内服务启动留足时间:
timeout /t 30 /nobreak
内容的提问来源于stack exchange,提问作者lazy
相关产品推荐
相关产品推荐

