docker - 什么是从一个容器到另一个容器的 url 服务?
问题描述
我在一个容器中的 c# 'web_dotnet' 中有应用程序,它从第二个容器中的 php 服务 'web_php' 下载数据。但是php服务的url是什么?c# 服务中的URL ' 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
from web_dotnet
。
之后,如果您想web_dotnet
从外部访问 ** docker-compose
,则添加ports
指令以使其从主机可见。
推荐阅读
- reactjs - NPM 或 Git 缓存文件,无法构建我的项目
- c# - Discord.net 宣布新用户加入的问题
- java - Feign Error Decoder 中的响应没有得到 Zalando 问题自定义属性
- java - 在片段中添加上滑面板
- javascript - × 错误:无效的钩子调用 - 没有版本问题或多个反应实例
- node.js - Node.js 和猫鼬。从一个集合中读取并写入另一个集合
- hadoop - 我在尝试使用 Hadoop 和 YARN 时遇到错误。需要协助,
- stripe-payments - Stripe Connect - 如何将资金从多个账户转移到一个目的地
- go - 嵌套在一堆 goroutine 中的 errgroup
- three.js - Three.js 中的铅锤相机失真