docker-compose使用带有容器ID的extra_hosts

时间:2016-11-10 14:38:26

标签: docker docker-compose

我有一个dockerized应用程序需要与外部(非dockerized)oracle数据库通信。

仅当我将hostname命令的结果附加到localhost文件中的/etc/hosts条目时,该应用才能在我的本地计算机上运行。否则我从OracleDB驱动程序中收到错误:

  

引起:oracle.net.ns.NetException:监听器拒绝连接   出现以下错误:ORA-12514,TNS:当前没有侦听器   知道连接描述符中要求的服务

我可以登录我的容器并手动编辑/etc/hosts,我想在重建后避免这个手动步骤。如何保持此文件的最新状态?

此外,似乎docker设置的hostname是容器ID。

有没有办法从docker-compose.yml文件中引用容器ID?

2 个答案:

答案 0 :(得分:1)

也许轻松的方法是为容器设置特定的主机名?

在docker-compose文件中设置hostname: foo,然后使用主机名 foo 代替基于docker id的hosname。

答案 1 :(得分:0)

显示主机名:在其他容器中不用于联网。