从一个容器到另一个容器的url服务是什么?

时间:2019-01-17 10:08:07

标签: docker

我在一个容器中的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

1 个答案:

答案 0 :(得分:2)

首先,您可以简化文件,删除不必要的网络声明和端口暴露。 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指令以使其在主机上可见。