Windows Docker Desktop下如何不指定端口通过db.test访问phpMyAdmin
HTTP 协议默认使用80端口进行访问,你当前配置中phpMyAdmin的端口映射规则为8083:80,只有访问宿主机的8083端口时,请求才会转发到容器内部的80端口,因此不带端口访问http://db.test时,请求默认走80端口,找不到对应服务。你可以选择以下任意一种方案解决问题:
方案1:直接修改端口映射(本地80端口未被占用时优先选择)
直接修改docker-compose.yml文件中phpmyadmin服务的ports配置,将"8083:80"改为"80:80":
services: phpmyadmin: # 其余原有配置保持不变 ports: - "80:80"
修改完成后执行命令重启容器即可:
docker-compose up -d
如果启动时提示80端口被占用,说明本地已有其他服务(如IIS、Apache、其他Web项目)占用了80端口,可选择以下两种方案。
方案2:本地部署反向代理(本地80端口已被占用时使用)
在本地安装Nginx或Apache作为反向代理,配置监听80端口的db.test域名请求,转发到127.0.0.1:8083即可。
以Nginx为例,新增站点配置如下:
server { listen 80; server_name db.test; location / { proxy_pass http://127.0.0.1:8083; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
重启Nginx后即可直接通过http://db.test访问服务。
方案3:新增Docker Nginx代理容器(无需修改本地现有服务)
你也可以在当前docker-compose.yml中新增一个Nginx服务,和现有服务放在同一个local_web_network网络中,将宿主机80端口映射到Nginx容器,配置Nginx将db.test的请求转发到phpmyadmin服务的80端口即可,不需要改动本地环境配置。
内容的提问来源于stack exchange,提问作者ImSaikiran
相关产品推荐
相关产品推荐

