虚拟机Linux安装Oracle容器并实现局域网其他主机访问查询
该文涉及Docker下Oracle容器的安装,主机端口的设置实现局域网内终端均能连接上Oracle数据库,图解如下:
一、关于Docker安装oracle容器可以参考下面博文:
https://blog.csdn.net/qq_38380025/article/details/80647620
文中需要注意的地方是,建立容器没有使用目录挂载:
docker run -d -p 1521:1521 --name oracle11g registry.cnhangzhou.aliyuncs.com/helowin/oracle_11g#原文没有加入目录挂载技术
没有使用目录挂载的情况下,容器如若出现崩溃无法进入,那么数据库文件也会无法读取,因此可以在建立目录挂载把容器里面oracle数据库文件映射到宿主机目录,
这样即使在容器崩掉情况下,依然可以通过在CentOS宿主机上读取到Oracle数据库文件,建议建容器如下:
docker run -d -p 1521:1521 -v /root/oracle:/home/oracle/app/oracle/oradata --name oracle11g_2 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g #oradata为oracle数据库文件存放文件路径,该文件夹挂载到宿主机/root/oracle下
另外关于Docker建立MySQL容器也可参考本博上篇博文的下部分:
https://www.cnblogs.com/rango-lhl/p/12293100.html
二、Win宿主机及局域网其他主机实现访问该Oracle数据库
win主机连接虚拟机上的oracle就是本地使用plsql连接服务器oracle,问题点在于虚拟机端口的设置,连接服务器oracle可以看下面这篇,这里只说端口设置问题。
https://blog.csdn.net/qq_21875331/article/details/82890183
虚拟机端口设置:
建立CentOS时候就应该注意选用NAT模型,建立Docker中的Oracle容器后,在防火墙开放1521端口,并在此处把1521端口映射到Win主机1521端口。
下一步进入Win主机控制面板防火墙设置,在入站规则开放1521端口:
新建规则选择端口:
完成后,局域网内其他主机访问Oracle数据库只需要使用Win主机IP即可:192.168.0.105:1521