linux系统如何配置host.docker.internal

方法1:使用 --add-host 参数

在运行容器时,可以通过 --add-host 参数手动将宿主机的IP地址映射到 host.docker.internal

  1. 获取宿主机的IP地址:

    bash 复制代码
    ip route show default | awk '/default/ {print $3}'

    通常,宿主机的IP地址是 172.17.0.1(Docker默认网桥的网关地址)。

  2. 运行容器时添加 --add-host 参数:

    bash 复制代码
    docker run --add-host=host.docker.internal:172.17.0.1 your_image

方法2:修改Docker守护进程配置

通过修改Docker守护进程的配置文件,可以全局启用 host.docker.internal

  1. 编辑Docker守护进程配置文件(通常是 /etc/docker/daemon.json):

    bash 复制代码
    sudo nano /etc/docker/daemon.json
  2. 添加以下内容:

    json 复制代码
    {
      "dns": ["8.8.8.8", "8.8.4.4"],
      "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"],
      "extra-hosts": ["host.docker.internal:host-gateway"]
    }
  3. 重启Docker服务:

    bash 复制代码
    sudo systemctl restart docker

方法3:使用 docker-compose

如果你使用 docker-compose,可以在 docker-compose.yml 文件中配置 extra_hosts

  1. 编辑 docker-compose.yml 文件:

    yaml 复制代码
    version: '3'
    services:
      your_service:
        image: your_image
        extra_hosts:
          - "host.docker.internal:host-gateway"
  2. 启动服务:

    bash 复制代码
    docker-compose up

方法4:直接使用宿主机的IP地址

如果你不需要 host.docker.internal 这个名称,可以直接使用宿主机的IP地址。

  1. 获取宿主机的IP地址:

    bash 复制代码
    hostname -I | awk '{print $1}'
  2. 在容器中使用该IP地址访问宿主机。


总结

在Linux上,host.docker.internal 默认不可用,但可以通过 --add-host、修改Docker配置或使用 docker-compose 实现类似功能。选择最适合你的方法即可。

相关推荐
青梅橘子皮2 小时前
Linux---基本指令
linux·运维·服务器
REDcker3 小时前
Linux信号机制详解 POSIX语义与内核要点 sigaction与备用栈实践
linux·运维·php
绘梨衣5473 小时前
Docker+FastAPI+MySQL 项目部署报错汇总
mysql·docker·fastapi
cui_ruicheng3 小时前
Linux进程间通信(三):System V IPC与共享内存
linux·运维·服务器
蚰蜒螟4 小时前
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程
linux·windows·microsoft
运维全栈笔记4 小时前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
dllmayday5 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
百年੭ ᐕ)੭*⁾⁾6 小时前
docker使用neo4j
docker·容器·neo4j
峥无6 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
用户2367829801686 小时前
从 chmod 755 说起:Unix 文件权限到底是怎么算的?
linux