在docker-compose版本中访问"http://host.docker.internal:80",可以通过以下步骤实现:
version: '3'
services:
app:
build: .
networks:
- mynetwork
target:
image: nginx
networks:
- mynetwork
networks:
mynetwork:
例如,在应用程序中使用Python的requests库发送HTTP请求:
import requests
response = requests.get('http://target:80')
print(response.text)
version: '3'
services:
app:
build: .
environment:
- HOST_IP=${HOST_IP}
networks:
- mynetwork
target:
image: nginx
networks:
- mynetwork
networks:
mynetwork:
然后,在启动docker-compose时,通过设置HOST_IP环境变量来传递主机的IP地址:
HOST_IP=$(ip route get 1 | awk '{print $NF;exit}')
docker-compose up
在应用程序中,可以使用环境变量来构建访问URL:
import os
import requests
host_ip = os.environ.get('HOST_IP')
url = f'http://{host_ip}:80'
response = requests.get(url)
print(response.text)
这样,你就可以在docker-compose版本中成功访问"http://host.docker.internal:80"了。请注意,这种方法只适用于Docker Desktop for Mac和Docker Desktop for Windows。在其他环境中,可能需要使用不同的主机名或IP地址来访问主机。
领取专属 10元无门槛券
手把手带您无忧上云