我有一个dockerized应用程序需要与外部(非dockerized)oracle数据库通信。
仅当我将hostname
命令的结果附加到localhost
文件中的/etc/hosts
条目时,该应用才能在我的本地计算机上运行。否则我从OracleDB驱动程序中收到错误:
引起:oracle.net.ns.NetException:监听器拒绝连接 出现以下错误:ORA-12514,TNS:当前没有侦听器 知道连接描述符中要求的服务
我可以登录我的容器并手动编辑/etc/hosts
,我想在重建后避免这个手动步骤。如何保持此文件的最新状态?
此外,似乎docker设置的hostname
是容器ID。
有没有办法从docker-compose.yml
文件中引用容器ID?
答案 0 :(得分:1)
也许轻松的方法是为容器设置特定的主机名?
在docker-compose文件中设置hostname: foo
,然后使用主机名 foo 代替基于docker id的hosname。
答案 1 :(得分:0)
显示主机名:在其他容器中不用于联网。