我有一个码头支持的ASP.NET核心应用程序。
坞-组合文件如下所示:
version: '3'
services:
test:
image: test
build:
context: ./Test
dockerfile: Dockerfile
networks:
test_nw:
aliases:
- test_alias
oracledb:
image: sath89/oracle-12c
ports:
- "1521:1521"
networks:
test_nw:
aliases:
- oracledb_alias
networks:
test_nw:但是在启动应用程序之后,我查看了ASP.NET核心应用程序的容器(docker exec -it ... bash)并检查了/etc/hosts文件,但是DB oracledb_alias的别名没有出现在其中。因此,当使用oracledb_alias作为连接字符串中的主机名时,应用程序不会找到DB。
我做错什么了?我该如何解决这个问题?
发布于 2017-09-05 17:41:15
你没做错什么。Docker的早期版本使用/etc/hosts解析主机名和链接。现在,docker为此使用了内部DNS服务器。
所以你不能看到任何这样的信息。那么,只有使用命令和测试才能达到解析名称的目的。
$ dig oracledb_alias
$ ping oracledb_alias
$ telnet oracledb_alias 1521有关详细信息,请参阅下面的链接
https://docs.docker.com/engine/userguide/networking/configure-dns/
https://stackoverflow.com/questions/46057443
复制相似问题