我正在暴露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映像中公开端口。我需要为此公开任何端口吗?
我有一个用于Perl Conatiner的link.conf
文件,该文件将oracle db与perl连接起来
LINKS=' --link oracle:oracle'
最后,我想在perl容器中使用perl脚本来连接到架构。我可以用我现在的配置来做吗?
答案 0 :(得分:2)
如果我了解您的问题。 您有一个暴露给某个端口的Oracle实例。 您有一个perl代码,并且想要访问Oracle。
您不需要公开perl容器上的任何端口(除非它公开了您要在此容器外部访问的任何服务)。如果您只想与oracle容器通信,则无需公开任何端口。
在perl容器中,您只需要准备db-connection字符串。在使用LINKS策略时,应该可以使用名称:“ oracle”作为主机名来连接到它。