Docker部署的Oracle数据库连接本地SQL Developer需额外配置步骤吗
Docker部署Oracle外部连接失败解决方案
问题核心原因
启动容器时未配置端口映射,容器内1521端口未暴露到宿主机网络,导致外部SQL Developer无法访问容器内的数据库服务。
修复步骤
- 停止并删除原有容器
执行命令:docker stop Oracle-DB && docker rm Oracle-DB - 重新启动容器,添加端口映射配置
新增-p 宿主机端口:容器端口参数,将宿主机端口与容器端口绑定:
其中1521是数据库监听端口,5500是Oracle Enterprise Manager管理端口。docker run -d -it --name Oracle-DB -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:12.2.0.1 - 等待容器初始化完成
Oracle容器启动耗时较长,通常需要2~5分钟完成初始化操作,可执行命令查看启动日志:
当日志中出现 DATABASE IS READY TO USE! 提示后,再进行连接测试。docker logs -f Oracle-DB - 核对SQL Developer连接配置
官方Oracle 12.2.0.1镜像默认存在两套实例标识,需根据你创建dummy用户的实例选择对应配置:连接CDB根容器:选择SID模式,填写
ORCL
连接默认PDB容器:选择服务名模式,填写ORCLPDB1 - 排查宿主机防火墙拦截
Ubuntu 16.04默认ufw防火墙可能拦截1521端口流量,可临时关闭防火墙验证:
验证连接正常后,可执行命令放行1521端口再重新开启防火墙:sudo ufw disablesudo ufw allow 1521/tcp sudo ufw enable
内容的提问来源于stack exchange,提问作者S Khandelwal
相关产品推荐
相关产品推荐

