首页 > 解决方案 > 我需要在 Perl 容器中打开哪个端口来连接 oracle db 容器

问题描述

我在暴露了端口 1521 的容器中运行 oracle db。我有另一个 perl 容器。这docker ps表明:

CONTAINER ID   NAME        IMAGE             COMMAND                  CREATED             STATUS                    PORTS
bb8686d87c66    perl      perl:5.16         "/usr/bin/supervisor…"   5 minutes ago       Up 5 minutes  
9e37dff4c19e    oracle    oracle:12.2.0.1   "/bin/sh -c 'exec $O…"   41 hours ago        Up 41 hours (healthy)   0.0.0.0:1521->1521/tcp , 5500/tcp   oracle        

我能够从 perl 容器 ping 到 oracle 容器。但我不能从 oracle 到 perl 做同样的事情。我没有在 perl 图像中公开端口。我需要为此公开任何端口吗?

我有一个link.confperl conatiner 文件,它将 oracle db 与 perl 连接起来

 LINKS=' --link oracle:oracle'

最后我想在 perl 容器中使用 perl 脚本来连接到模式。我可以用我目前的配置来做吗?

标签: oracledockerperl

解决方案


如果我理解你的问题。您有一个暴露给某个端口的 Oracle 实例。你有一个 perl 代码,并且想要访问 Oracle。

您不需要在 perl 容器上公开任何端口(除非它公开了您要在此容器之外访问的任何服务)。如果您只是想与 oracle 容器通信,则无需在其上公开任何端口。

在你的 perl 容器中,你只需要准备好你的 db-connection 字符串。当您使用 LINKS 策略时,您应该能够通过使用 name: "oracle" 作为主机名来连接到它。


推荐阅读