P.S:我是99.99%的Windows开发人员,而我上周接触Linux和Docker是
一点点tl; dr,但不想遗漏任何东西。
我有三个docker映像:
以上设置适用于Linux Ubuntu,并且是在Windows环境下使用docker开发的,用于Linux安装。
这是我遵循的步骤:
sudo docker network create avt_network
创建的网络sudo docker run -d --net=avt_network <image_name> --name=angular-app
--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地址。
已经尝试过的事情
sudo docker exec -it <angular_app_id> bash
。从这里使用IP地址和名称对API进行ping操作,结果是肯定的。而且,我不知道哪里可能出问题了?
我现在正在研究撰写文件。同时,任何帮助或指导都是很好的。