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

相关推荐
巨懵14 分钟前
不使用dockerfile的方式制作一个Ubuntu20.04的镜像
docker
dessler15 分钟前
Kubernetes(k8s)-集群监控(Prometheus)
linux·运维·kubernetes
一夜沐白16 分钟前
Linux用户管理
linux·运维·服务器·笔记
PLUS_WAVE37 分钟前
【Tools】chezmoi 跨多台不同的机器管理 dotfiles 的工具
linux·服务器·软件工程·工具·chezmoi
唐青枫2 小时前
Linux man 命令使用教程
linux
珹洺2 小时前
Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小
linux·运维·服务器
威桑2 小时前
解决Ubuntu下使用CLion构建Qt项目时找不到已安装的模块的问题
linux·运维·ubuntu
PLUS_WAVE3 小时前
【SSH 端口转发】通过SSH端口转发实现访问远程服务器的 tensorboard
linux·服务器·ssh·软件工程·端口转发·tensorboard
珹洺4 小时前
Linux操作系统从入门到实战(四)Linux基础指令(下)
linux·运维·服务器
菠萝崽.4 小时前
安装docker,在docker上安装mysql,docker上安装nginx
java·mysql·nginx·docker·软件工程·springboot·开发