You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Docker容器访问本地别名域名mydomain.com?

解决方案

1. 通过extra_hosts配置容器内域名解析

在你的docker-compose.yml的server服务中添加extra_hosts字段,将mydomain.com映射到Docker提供的宿主机别名host.docker.internal:

version: '3.8'

services:
  nginx:
    container_name: project-nginx
    image: nginx:1.23.1-alpine
    volumes:
      - ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      - ./src:/app
    ports:
      - ${NGINX_PORT:-81}:80
    depends_on:
      - project
  server:
    container_name: project
    build:
      context: ./
    environment:
      NODE_MODE: service
      APP_ENV: local
      APP_DEBUG: 1
      ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-null}
    volumes:
      - ./src:/app
    # 添加域名映射配置
    extra_hosts:
      - "mydomain.com:host.docker.internal"

修改后重启容器,此时容器内请求mydomain.com会被解析到宿主机,即可访问你本地80端口的服务。

2. 排查host.docker.internal访问404的问题

若直接请求host.docker.internal出现404,通常是因为你本地的服务器仅绑定了127.0.0.1(仅允许localhost访问),而非0.0.0.0(允许所有IP访问)。需要修改本地服务器的监听配置,将监听地址改为0.0.0.0:80,确保宿主机的外部IP(包括host.docker.internal指向的IP)能正常访问服务。

3. 关于network_mode: "host"的问题

Windows版Docker Desktop基于WSL2架构,host网络模式在Docker Compose多服务场景下存在兼容性限制,会导致启动失败,因此不建议使用该方式解决问题。

内容的提问来源于stack exchange,提问作者Kostya GL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:41:55