码头工人-找不到URL ERR_NAME_NOT_RESOLVED

时间:2019-01-20 22:11:52

标签: docker docker-compose docker-run docker-pull

P.S:我是99.99%的Windows开发人员,而我上周接触Linux和Docker是

一点点tl; dr,但不想遗漏任何东西。

我有三个docker映像:

  1. Angular 6 Web应用程序(已推送到Azure容器注册表)
  2. ASP .Net Core Web APi(推送到Azure容器注册表)
  3. MongoDB(最新的docker hub)

以上设置适用于Linux Ubuntu,并且是在Windows环境下使用docker开发的,用于Linux安装。

这是我遵循的步骤:

  • 使用sudo docker network create avt_network创建的网络
  • 然后,我将网络添加到“ Angular Web应用程序”图像中。 sudo docker run -d --net=avt_network <image_name> --name=angular-app
  • 对于ASP.Net核心( --name=avt-api )映像和Mongo映像( --name avt-mongo ),它们均相同。将它们全部分配给avt_network。我为他们分配了单独的IP地址。
  • 然后我运行sudo docker container ls以确保三个都在运行
  • 然后做sudo docker network inspect avt_network,所有三个图像都在那里分配了唯一的IP地址。

现在我要面对的问题

从主机Linux Ubuntu 18.04,输入angular-app的IP地址,它是标准的172.18.0.1,并打开了网站。但是,当我从Angular App进行API调用时,在FireFox上显示CORS错误,而在Google Chrome上显示ERR_NAME_NOT_RESOLVED。 在调用容器时,我使用的是容器名称而不是API的IP地址,以确保重启时的一致性。 PS:我已在.Net Core API上启用了CORS

如果我直接调用API,它将起作用并从MongoDB中获取数据。连接字符串是图像的名称,而不是MongoDB图像的IP地址。

已经尝试过的事情

  • 因此,我决定从主机ping通IP地址,所有三个响应均得到了肯定的结果。
  • 然后我sudo docker exec -it <angular_app_id> bash。从这里使用IP地址和名称对API进行ping操作,结果是肯定的。
  • 我还尝试了一次全新的尝试,创建了一个新的VM,然后重新安装了所有必需的东西。但是,最终结果是相同的。

而且,我不知道哪里可能出问题了?

我现在正在研究撰写文件。同时,任何帮助或指导都是很好的。

0 个答案:

没有答案