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

标签 docker docker-compose

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

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

Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor



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

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

有没有一种方法可以从docker-compose.yml文件中引用容器ID?

最佳答案

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

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

关于docker - docker-compose使用具有容器ID的extra_hosts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40530211/

相关文章:

docker - 什么时候在 Docker 容器中使用 `--interactive` 而没有 `--tty`?

docker - 我们可以拥有一个没有外壳的 docker 容器吗?

mysql - 问题让 docker 使用 wordpress 正确访问我的数据库

docker - 将Dockerized Elasticsearch与多个Docker主机集群化

ubuntu - 从 ubuntu 主机访问 rabbitmq 的 docker 容器

python-3.x - Dockerfile未在端口上运行

docker - 在 2020 年使用 docker-compose 以 root 身份运行命令?

docker - docker : healthcheck specific s3 started 中的本地堆栈

docker - 如何使 ffmpeg 在我的 Docker 容器中可用?

macos - 你如何退出 docker-compose up @ macOS?