我已经建立了一个.net core 2 mvc应用程序和一个API应用程序,它们都托管在docker内部用于本地计算机上的Windows,并作为linux容器运行。
我试图让它们在端口80或443上相互通信,而无法让那些端口显示它们是开放的并允许连接。我可以从另一个容器ping这个容器
MVC项目是容器A,api是容器B。
我可以使用分配的localhost:port通过Web浏览器连接到A和B,并查看呼叫是否正常工作和应答。
在容器内的docker上 A可以看到并ping,B可以看到并ping A ... A无法使用B IP和端口组合发送静止呼叫 A不能仅使用B IP向B发送休息呼叫。
由于某种原因,我根本无法使这些容器进行通信。
任何帮助将不胜感激。
Docker-Compose.yml
version: '3.4'
services:
internalapiservice:
image: ${DOCKER_REGISTRY}internalapiservice
network_mode: bridge
expose:
- "44310"
- "80"
build:
context: .
dockerfile: InternalApiService/Dockerfile
presentationservice:
image: ${DOCKER_REGISTRY}presentationservice
network_mode: bridge
links:
- internalapiservice
build:
context: .
dockerfile: PresentationService/Dockerfile
override.yml:
version: '3.4'
services:
internalapiservice:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80;https://+:45310
- ASPNETCORE_HTTPS_PORT=44310
ports:
- "17399:80"
- "44310:443"
volumes:
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
presentationservice:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44365
ports:
- "24632:80"
- "44365:443"
volumes:
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro