首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在docker-compose版本中访问http://host.docker.internal:80

在docker-compose版本中访问"http://host.docker.internal:80",可以通过以下步骤实现:

  1. 确保你的应用程序容器和目标容器都在同一个网络中。可以在docker-compose.yml文件中定义一个网络,例如:
代码语言:txt
复制
version: '3'
services:
  app:
    build: .
    networks:
      - mynetwork

  target:
    image: nginx
    networks:
      - mynetwork

networks:
  mynetwork:
  1. 在应用程序容器中,可以使用"http://target:80"来访问目标容器。这里的"target"是目标容器的服务名称,docker-compose会自动解析为目标容器的IP地址。

例如,在应用程序中使用Python的requests库发送HTTP请求:

代码语言:txt
复制
import requests

response = requests.get('http://target:80')
print(response.text)
  1. 如果你的应用程序需要访问主机的端口,可以使用环境变量来传递主机的IP地址。在docker-compose.yml文件中添加一个环境变量:
代码语言:txt
复制
version: '3'
services:
  app:
    build: .
    environment:
      - HOST_IP=${HOST_IP}
    networks:
      - mynetwork

  target:
    image: nginx
    networks:
      - mynetwork

networks:
  mynetwork:

然后,在启动docker-compose时,通过设置HOST_IP环境变量来传递主机的IP地址:

代码语言:txt
复制
HOST_IP=$(ip route get 1 | awk '{print $NF;exit}')
docker-compose up

在应用程序中,可以使用环境变量来构建访问URL:

代码语言:txt
复制
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地址来访问主机。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用docker和nginx部署前端项目,并且访问本地java网关gateway服务

因为没有前端源码,也不能像正常开发的前端项目一样,我们可以随便修改代理访问任意服务地址,而且只能通过 nginx 之类的服务器实现部署访问和代理接口地址。...解决步骤 通过在本地安装docker来运行nginx服务器 一、安装 docker 直接去docker官网下载安装好docker,windows、mac都有对应的版本 二、拉取 nginx 镜像 直接拉取最新版本的...nginx docker pull nginx 三、添加 docker-compose 配置文件 直接利用docker-compose来启动容器,就不需要自己手动一行一行来敲命令了。...不过上面用命令获取到的这个本机ip地址是可能会变的,所以最好的方式是直接写成 host.docker.internal,这个就指代宿主机的真实ip,注意低版本的docker不支持这个。...五、运行前端服务 直接在前端静态资源目录里输入命令:docker-compose up,运行成功了,就可以在本地浏览器里访问前端和后端网关服务了:

90070

.Net Core微服务入门全纪录(八)——Docker Compose与容器网络

以下是docker-compose.yml文件内容: version: '3.4' #Compose文件版本 services: #服务     auth: #定义"auth"服务 对应的是鉴权中心项目...容器网络 前面的章节中有提到过,默认情况下容器之间的通讯是比较麻烦的,之前是通过host.docker.internal或者容器的IP去访问,虽然是可以访问但有些不友好。...代码修改 既然程序都运行在docker,那就不能写localhost,host.docker.internal之类的主机名了,统一改为docker-compose.yml文件定义的服务名。...这里等up完再执行一次up就好了) 浏览器访问http://localhost:5000/ ? 登录后: ? 这样运行系统是不是非常简单呢?...总结 上文用到了Docker-Compose的3个命令: 构建:docker-compose build 启动:docker-compose up 销毁:docker-compose down 其实build

1.3K10

.Net Core in Docker极简入门(下篇)

dockerfile: WebApplication1/Dockerfile ports: - '5000:80' networks: - my-net...上一篇有小伙伴问容器内能不能访问容器外的数据库,这个是可以访问的。...访问宿主机的话直接用IP访问就可以,或者用host.docker.internal,这个host.docker.internal是docker安装时会写入到你的hosts文件里的一个主机名,实际还是指向你的主机...执行docker-compose up,也可以加-d参数,让他在后台运行 启动完成后,浏览器访问http://localhost:5000/weatherforecast 成功。...如果你想摧毁这个环境只需要执行docker-compose down即可 同样的,以上操作也可以直接在vs2019完成,无需手动执行指令,只需要将docker-compose项目设为启动项,然后直接运行即可

95910

定时任务管理系统 gocron、cronsun

项目开发容易堆积较多定时脚本,最简单的是使用 crontab 但 crontab 存在较多缺点: 默认不支持秒级 任务管理分散,代码散落在各个机器,代码管理易丢失 可观测性弱,需要在各个脚本开发告警...资源与部署:cronweb、cronnode、Etcd、Mongo 可靠性说明 https://github.com/shunfei/cronsun/wiki/%E5%8F%AF%E9%9D%A0%E6%80%...A7%E8%AF%B4%E6%98%8E 安装体验:TODO 遇到 docker-compose 部署问题,后续补上 ouqiang/gocron 项目地址:https://github.com/ouqiang...http://localhost:5920/ mysql 去建个数据库,在 gocron web 后台输入 mysql 相关信息和系统登录管理员,即可完成系统初始化 3.任务配置 3.1 启动 gocron-node.../bin/gocron-node 3.2 配置任务节点 配置上述 mac 机启动的 gocron-node(容器访问宿主机,可用 host.docker.internal) 3.3 配置任务 3.4

34210

OpenVidu —— 可在内网环境使用的开源 WebRTC 视频会议平台

features OpenVidu 有 CE、Pro、Enterprise 三个版本,CE 版本是开源并免费使用的,可以使用大部分 OpenVidu 的重要特性: editions 2Architecture...本文旨在本地内网,搭建一套最小可用的 OpenVidu 体验环境,支持多方视频会议,故缩减上述完整部署的 Coturn 和 Redis 服务,使用包含了 OpenVidu Server 和 Kurento...仅使用 localhost 或 127.0.0.1 的本地开发环境,可以直接使用 HTTP,但在需要通过 IP 或域名访问的场景下,WebRTC 需要安全连接才能工作,故部署结构需增加一个反向代理组件...,变为 下图[8] 所示: proxy 3部署 接下来就按上图进行本地体验环境部署。...的报错,此时可参照 #2664[14] 中方式为 host.docker.internal 域名设置对应的 IP,: # At the root path of the tutorial # For

94010

Docker通过EFK(Elasticsearch + Fluentd + Kibana)查询日志

我们会创建四个容器: httpd (发送日志给EFK) Fluentd Elasticsearch Kibana 环境准备 请安装最新的docker及docker-compose,老版本会有些问题。...://localhost:80/,但是我在docker-compose.yml修改了端口,所以我这里是 ➜ repeat 10 curl http://localhost:1080/ <...默认情况下,docker-compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络。...这样,容器就可被该网络的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。...最后想要做的就是如何在一台服务器上搜集所有的日志,理论上来说,只需要一台服务器部署上EFK,暴露端口,其他服务器去发送即可,实际上还没试过。 如果有好的意见,欢迎来提。

1.3K30

Docker通过EFK(Elasticsearch + Fluentd + Kibana)查询日志

我们会创建四个容器: httpd (发送日志给EFK) Fluentd Elasticsearch Kibana 环境说明: 请安装最新的docker及docker-compose,老版本会有些问题。.../www.cnblogs.com/xiao987334176/p/12377113.html 操作系统:centos 7.6 配置:2核8g docker版本:19.03.6 docker-compose...产生日志 使用curl执行3遍 curl http://localhost:1080/ curl http://localhost:1080/ curl http://localhost:1080/ 查看日志...默认情况下,docker-compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络。...这样,容器就可被该网络的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。 所以我们首先需要找到我们现在创建的EFK的网络名, ?

3.5K40

企业级Docker Registry部署之Harbor

部署方式分为两种,一种是在线,一种是离线,推荐使用离线,本文也教大家如何离线搭建Harbor,进入到项目开源地址下载最新版本:harbor-offine-installer-v1.1.1.tgz,名称包含...online的为在线安装,需要OS能连接到互连网  部署环境支持:     Python2.7或更高版本     Docker engine 1.10或更高版本    ...修改hostname为harbor所在主机的IP地址,192.168.1.31  首次启动harbo     ....80端口,如果需要更改访问harbor端口和docker pull/push时指定服务器的端口时,需要修改docker-compose.yml,在vmware/nginx:1.11.5-patched这个镜像处修改暴露的端口为指定端口...所在目录执行 docker-compose stop    停止harbor所有容器 docker-compose start    启动harbor所有容器

40320

SpringAI+Ollama三部曲之一:极速体验

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos Spring AI实战全系列链接 Spring AI...,您可以根据自己的实际情况在官网选择其他版本 稍后会将选好的模型写在配置文件 准备工作(操作系统和docker) 本次实战的两个重要前提条件: 操作系统是Linux,我这里用的是Ubuntu 24.04...LTS服务器版 docker和docker-compose已经部署好,我这里docker版本是26.1.2 由于docker镜像较大,所以请提前准备好docker镜像加速,方法很多,我这里用的是阿里云的...- 'WEBUI_SECRET_KEY=123456' - 'HF_ENDPOINT=https://hf-mirror.com' extra_hosts: - host.docker.internal...,请在docker-compose.yml上就行修改,改为没有占用就行,然后执行以下命令(先停掉再启动) docker-compose down docker-compose up -d 启动期间,下载

32500
领券