ASP NET核心:docker-compose中的别名不会出现在/ etc / hosts中
我有一个Docker支持ASP NET核心应用程序。
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 Core应用程序的容器(执行cker exec -it ... bash
)并检查了/etc/hosts
文件,但是数据库oracledb_alias
的相应别名没有出现在其中。 所以当在连接string中使用oracledb_alias
作为主机名时,应用程序找不到数据库。
我做错了什么? 我如何解决这个问题?
你没有做错什么。 Docker的早期版本使用/etc/hosts
来parsing主机名和链接。 现在docker使用一个内部的DNS服务器。
所以你不会看到任何信息。 那么你只能使用一个命令来testing你是否能够parsing这个名字
$ dig oracledb_alias $ ping oracledb_alias $ telnet oracledb_alias 1521
请参阅下面的链接了解更多详情
https://docs.docker.com/engine/userguide/networking/configure-dns/
- 在Docker工具箱中,没有使用docker-compose进行安装的卷
- docker-registry v2.2.0 S3configuration没有被覆盖
- 如何将种子数据放入SQL Server泊坞窗图像?
- 什么是Docker Cloud本地url?
- 使用docker运行symfony2应用程序
- Docker for windows10运行django失败:无法打开文件'manage.py':没有这样的文件或目录
- 为什么MySQL Docker容器会抱怨在使用Docker 17.03的秘密时必须定义MYSQL_ROOT_PASSWORD env?
- 在运行时构buildDocker或Docker由图像组成
- 错误1045(28000):拒绝访问用户'root'@'localhost'(使用密码:Y