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 实现类似功能。选择最适合你的方法即可。

相关推荐
tryCbest15 小时前
Docker 从零到精通:知识与跨平台使用指南
docker·容器
CSDN1211017 小时前
麒麟 V10 安装 Node-RED、IEC 104 协议插件及界面汉化
linux·编辑器·vim
开始学AI18 小时前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
晨枫阳19 小时前
@changesets/cli是什么?哪些情况下需要使用?怎么使用
linux·运维·ubuntu
做前端的娜娜子19 小时前
Docker 常用命令全梳理:从镜像拉取到容器编排
docker·容器·掘金·金石计划
不会就选b20 小时前
Linux之网络基础(二)
linux·运维·网络
莫浅子20 小时前
Day 4:USB 2.0 时序与带宽预算
linux·运维·网络
ly768920 小时前
Linux 从入门到实践:系统架构、常用命令、服务管理与故障排查详解
linux·运维·系统架构
2401_8685347821 小时前
在企业环境中快速安装配置 FreeBSD Unix 服务器操作系
linux·网络协议
小雪崩21 小时前
嵌入式学习 day27:标准IO
linux·c语言·学习