当前位置: 首页 > news >正文

为什么 Linux 上默认没有 host.docker.internal

在 Linux 环境中,host.docker.internal 是 Docker 为容器提供的一个特殊 DNS 名称,用于指向宿主机的 IP 地址(类似 macOS/Windows 中的行为)。但这个功能在 Linux 上默认不启用,需要手动配置才能使用。以下是详细解释和解决方案:


1. 为什么 Linux 上默认没有 host.docker.internal

  • 历史原因: Docker 最初在 macOS/Windows 上通过虚拟机运行,host.docker.internal 被设计为指向宿主机。而 Linux 是原生运行 Docker 的,默认没有此机制。

  • 网络隔离: Linux 容器默认使用桥接网络(bridge),与宿主机隔离,无法直接通过简单域名访问宿主机。


2. Linux 上如何让容器访问宿主机?

方法 1:直接使用宿主机 IP
  • 通过 ip route 命令获取宿主机的 IP(通常是 docker0 网卡的网关):

    bash

    复制

    下载

    ip route show default | awk '{print $3}'

    输出示例:

    复制

    下载

    172.17.0.1
  • 在 Dockerfile 或启动命令中,将 host.docker.internal 替换为宿主机 IP:

    diff

    复制

    下载

    -Dskywalking.collector.backend_service=host.docker.internal:11800
    +-Dskywalking.collector.backend_service=172.17.0.1:11800
方法 2:运行时添加 --add-host 参数
  • 运行容器时,通过 --add-host 将 host.docker.internal 绑定到宿主机的网关 IP:

    bash

    复制

    下载

    docker run --add-host=host.docker.internal:host-gateway your-image
    • host-gateway 是 Docker 的保留关键字,自动解析为宿主机的网关 IP。

方法 3:使用 network_mode: host
  • 在 Docker Compose 或启动命令中,将容器的网络模式设为 host,使容器共享宿主机的网络栈:

    yaml

    复制

    下载

    # docker-compose.yml
    services:your-service:network_mode: host
    • 优点:容器内直接使用 127.0.0.1 即可访问宿主机服务。

    • 缺点:容器与宿主机共享网络,可能导致端口冲突。

方法 4:自定义 Docker 网络
  • 创建自定义网络并指定网关:

    bash

    复制

    下载

    docker network create --driver bridge --subnet 172.25.0.0/16 my-net
  • 运行容器时加入该网络,并通过网关 IP 访问宿主机。

相关文章:

  • MySQL基础原理
  • 赋能数据报告:解锁智能化分析建议新姿势
  • Llama:开源的急先锋
  • ROS2学习(1)-------安装ROS2
  • 电脑开机提示按f1原因分析及解决方法(6种解决方法)
  • docker-compose——安装redis
  • C语言—再学习(指针)
  • AI 产业化浪潮:从生成智能到星载计算,中国如何重塑全球竞争格局
  • 力扣算法ing(70 / 100 )
  • Python爬虫实战:研究进制流数据,实现逆向解密
  • Protocol Buffers 全流程通俗讲解
  • DHCP协议
  • 基于 NanoDet 的工厂巡检机器人目标识别系统研究与实现​
  • 基于RFSOC ZU28DR+DSP 6U VPX处理板
  • CPS联盟+小程序聚合平台分销返利系统开发|小红书番茄网盘CPA拉新推广全解析
  • 使用matlab进行数据拟合
  • 【操作系统期末速成】①操作系统概述
  • 紫光同创FPGA实现AD9280数据采集转UDP网络传输,分享PDS工程源码和技术支持和QT上位机
  • 基于IMX429-IMX430-IMX432-IMX437等sensor的SLVS桥MIPI透传模组方案
  • DA14531如何在固件中生成与时间相关的mac和版本号
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • 李家超:明日起香港特区护照持有人可免签入境阿联酋
  • 通辽警方侦破一起积压21年的命案:嫌疑人企图强奸遭反抗后杀人
  • 第三届“老山国际春茶节”活动在云南麻栗坡举办
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 上海第四批土拍成交额97亿元:杨浦宅地成交楼板单价半年涨近7000元