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

如何在Docker中使用宿主机自定义/etc/host配置部署网页服务

解决Docker中Laravel使用自定义主机名的问题

我来帮你搞定这个问题!其实核心是要理清宿主机和Docker容器的网络隔离性,以及两者的hosts配置如何配合,下面给你几个可行的方案:

方案一:宿主机+容器双hosts配置+端口映射

这个方案能同时满足宿主机用自定义域名访问容器,以及容器内部解析该域名的需求:

  • 确认宿主机/etc/hosts配置:你已经配置了192.168.0.0 example.test,这里建议把IP改成宿主机的局域网IP(可以通过ifconfig或ipconfig查看),如果只是宿主机本地访问,也可以用127.0.0.1。
  • 启动容器时添加host映射:用docker run的--add-host参数,把自定义域名指向宿主机IP,同时做好端口映射:
    docker run --add-host example.test:宿主机局域网IP -p 8000:8000 你的镜像名
    
  • 启动Laravel服务:在容器内部启动服务时,必须绑定到0.0.0.0(让容器外部能访问),命令如下:
    php artisan serve --host=0.0.0.0 --port=8000
    
    现在你在宿主机浏览器输入http://example.test:8000就能正常访问了,容器内部如果有请求指向example.test也能正确解析。

方案二:使用Docker自定义网络(更优雅)

如果经常需要这类配置,建议创建自定义Docker网络,让容器间和宿主机的域名解析更灵活:

  • 创建自定义网络:
    docker network create laravel-network
    
  • 启动容器时加入该网络:指定网络的同时,用--hostname给容器设置自定义主机名:
    docker run --network laravel-network --hostname example.test -p 8000:8000 你的镜像名
    
  • 宿主机/etc/hosts补全映射:把example.test指向127.0.0.1或者宿主机局域网IP:
    127.0.0.1 example.test
    
  • 启动Laravel服务:同样绑定到0.0.0.0:
    php artisan serve --host=0.0.0.0 --port=8000
    
    这种方式下,同一网络内的其他容器也能通过example.test访问这个Laravel服务,非常适合多容器协作的场景。

方案三:使用Nginx反向代理(生产环境推荐)

如果是生产环境或者想要更贴近真实业务的域名配置,推荐用Nginx做反向代理:

  • 配置Nginx反向代理:在宿主机或单独的Nginx容器中添加以下配置:
    server {
        listen 80;
        server_name example.test;
    
        location / {
            proxy_pass http://localhost:8000; # 指向容器映射到宿主机的端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
  • 启动Laravel容器:确保端口映射正确:
    docker run -p 8000:8000 你的镜像名
    
  • 启动Laravel服务:
    php artisan serve --host=0.0.0.0 --port=8000
    
    现在宿主机访问http://example.test就能直接进入Laravel服务,不需要加端口号,完全模拟生产环境的域名访问体验。

常见问题排查

  • 先检查端口映射是否正确:用docker ps查看容器的端口绑定情况,确保宿主机端口和容器端口对应。
  • 测试容器内部解析:进入容器docker exec -it 容器ID /bin/bash,执行ping example.test,看是否能正确解析到目标IP。
  • 排除浏览器缓存:用curl example.test:8000在宿主机终端测试,避免浏览器缓存导致的访问异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:28:57