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

相关推荐
waves浪游14 小时前
Linux基本指令(中)
linux·运维·python
zwhy031114 小时前
TCP服务器设计思路
linux·服务器·网络
荣光波比14 小时前
Docker(三)—— Docker Compose 编排与 Harbor 私有仓库实战指南
运维·docker·容器·云计算
落日漫游14 小时前
DockerCE与cri-docker核心区别解析
运维·docker·kubernetes
-水火-14 小时前
【IDE】Linux下使用openocd烧录bin文件
linux·ide·openocd·bin
YongCheng_Liang14 小时前
Linux 基础命令的 7 大核心模块
linux·运维·服务器
tt55555555555515 小时前
嵌入式启动全流程详解:从SPL到内核
linux
努力搬砖的咸鱼15 小时前
Docker 三剑客:镜像、容器、仓库
docker·云原生·容器
Madison-No716 小时前
【Linux】基础开发工具---yum / apt
linux·运维·服务器
dot to one16 小时前
应用层:Http、Https
linux·c++·网络协议