如何修改Docker Compose配置让Traefik通过5060端口暴露服务
修改Docker Compose配置实现指定端口访问
需求说明
现有运行Node.js程序的nodeserver容器,暴露3060端口,使用镜像nuc0c.cn.lan:5000/node_request:0.0.1。当前可通过http://nuc0c.cn.lan访问站点,需改为通过http://nuc0c.cn.lan:5060访问。
修改方案
需对docker-compose.yml做两处关键修改:
1. 为Traefik开放5060端口
在Traefik服务的ports配置中添加5060端口映射,将外部5060端口的请求转发到Traefik容器内部的80端口(Traefik默认处理HTTP请求的端口)。
2. 限定nodeserver的路由匹配端口
修改nodeserver的Traefik路由规则,让它仅匹配访问5060端口的请求,避免和其他端口服务冲突。
修改后的完整配置
services: traefik: container_name: traefik4node # The official v3 Traefik docker image image: traefik:v3.3 # Enables the web UI and tells Traefik to listen to docker command: --api.insecure=true --providers.docker ports: - "80:80" - "8080:8080" - "5060:80" # 新增5060端口映射 # The Web UI (enabled by --api.insecure=true) volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock depends_on: - nodeserver nodeserver: image: nuc0c.cn.lan:5000/node_request:0.0.1 # container_name: nodeserver tty: true labels: - "traefik.http.routers.nodeserver.rule=Host(`nuc0c.cn.lan`) && Port(`5060`)" # 新增端口匹配规则 - "traefik.enable=true" - "traefik.http.services.my-service.loadbalancer.server.port=3060" # 转发请求到容器暴露的3060端口
验证方式
修改完成后执行docker-compose up -d重启服务,即可通过http://nuc0c.cn.lan:5060访问Node.js站点。
内容的提问来源于stack exchange,提问作者Jose Cabrera Zuniga
相关产品推荐
相关产品推荐

