我在一个容器中有一个C“web_-dotnet”中的应用程序,它从第二个容器中的php服务“web_-php”下载数据。但是,PHP服务的URL是什么?URL http://web_php:80 '来自C服务不起作用。这是Mine 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 为您创建默认的用户定义的网桥网络,并将所有服务链接到该网络-无需手动操作。此外,在网络内部,所有端口都自动暴露在服务中。
docker-compose
第二,删除 container_name . 你把自己搞糊涂了。服务的主机名默认等于服务名。
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_php:80
web_dotnet
之后,如果您想访问 韦氏网络 **从外部** 码头工人组成 然后添加 ports 使其从主机可见的指令。
韦氏网络
码头工人组成
ports