我在一个容器中的C#'web_dotnet'中有应用程序,该应用程序从第二个容器中的php服务'web_php'下载数据。但是什么是php服务的url? C#服务中的网址'http://web_php:80'不起作用。那是我的docker-compose.yml:
version: '3.5'
services:
web_php:
image: php:7.2.2-apache
container_name: my_php_container
volumes:
- ./php/:/var/www/html/
ports:
- 3000:80
networks:
- mynet
web_dotnet:
build: .
container_name: my_dotnet_container
ports:
- 2000:80
networks:
- mynet
networks:
mynet:
name: xyz_net
driver: bridge
最佳答案
首先,您可以简化文件,删除不必要的网络声明和端口暴露。 docker-compose
为您创建默认的用户定义的桥接网络,并将所有服务链接到该网络-无需手动进行。同样在网络内部,所有端口都将自动暴露给服务。
其次,删除container_name
。你让自己感到困惑。默认情况下,服务的主机名等于服务名。
version: '3.5'
services:
web_php:
image: php:7.2.2-apache
volumes:
- ./php/:/var/www/html/
web_dotnet:
build: .
现在,在清除所有无用的东西之后,只需从
web_php:80
调用web_dotnet
即可。之后,如果您想从外部访问
web_dotnet
** docker-compose
,则可以添加ports
指令以使其在主机上可见。
关于docker - 从一个容器到另一个容器的url服务是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54233468/