ASP NET Core:docker-compose中的别名不会出现在/ etc / hosts中

时间:2017-09-05 14:28:10

标签: asp.net docker docker-compose

我有一个Docker支持的ASP NET Core应用程序。

docker-compose文件如下所示:

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核心应用程序的容器(执行cker exec -it ... bash)并检查了/etc/hosts文件,但是数据库oracledb_alias的相应别名确实存在没有出现在其中。因此,当在连接字符串中使用oracledb_alias作为主机名时,应用程序找不到数据库。

我做错了什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你没有做错任何事。 Docker的早期版本曾使用/etc/hosts来解析主机名和链接。现在,docker使用内部DNS服务器。

所以你不能看到任何这样的信息。那么你唯一能做的就是使用一个命令并测试你是否可以达到解析名称

$ dig oracledb_alias
$ ping oracledb_alias
$ telnet oracledb_alias 1521

有关详细信息,请参阅以下链接

https://docs.docker.com/engine/userguide/networking/configure-dns/