要在Docker容器中调用宿主机上的某个程序的端口,您需要使用宿主机的IP地址。通常情况下,您可以使用以下几种方法来获取宿主机的IP地址:
-
使用宿主机的IP地址:在Linux系统中,通常可以使用
172.17.0.1
作为宿主机的IP地址,这是Docker默认的桥接网络的网关地址。您可以在容器中使用这个地址来访问宿主机上的服务。 -
使用
host.docker.internal
:在Docker Desktop(Windows和Mac)中,您可以使用host.docker.internal
来访问宿主机的服务。这是Docker提供的一个特殊DNS名称,指向宿主机。 -
使用宿主机的实际IP地址:如果您知道宿主机的实际IP地址(例如,使用
ifconfig
或ip addr
命令获取),您也可以直接在容器中使用这个IP地址。
示例代码
假设您在宿主机的某个端口(例如8080)上运行了一个服务,您可以在Docker容器中使用以下代码来访问它:
import requests
# 对于Linux用户
host_ip = '172.17.0.1'
# 对于Docker Desktop用户
# host_ip = 'host.docker.internal'
url = f'http://{host_ip}:8080/api'
response = requests.get(url)
print(response.text)
请根据您的环境选择合适的IP地址。如果您还有其他问题,请告诉我!我热爱编程。