中转服务容器化Docker‑Compose一键部署生产模板

中转服务通常承担流量转发、API 代理或内网穿透职责,手动部署时环境差异大、重启麻烦,换成 Docker-Compose 后只需一份 docker-compose.yml 就能在任意 Linux 服务器上拉起整套服务。
本文按生产环境标准给出可直接套用的模板,并讲清前置条件、部署步骤、验证方法和高频踩坑点,零基础用户照做即可。

部署前的三件事

开始操作前先确认三件事:

  • 服务器已安装 Docker 和 Docker-Compose。执行 docker -vdocker-compose -v 能看到版本号即可;若未安装,参考 Docker 官方文档或宝塔面板的 Docker 管理器一键安装。
  • 端口已预留。中转服务默认使用 8080,如果用 Nginx 反代,注意不要和 80/443 冲突。
  • 数据目录已规划。建议在 /opt/relay 下统一存放配置和日志,方便备份和迁移。

编写 docker-compose.yml 模板

/opt/relay 目录下新建 docker-compose.yml,内容如下:

version: "3.8"

services:
  relay:
    image: your-registry/relay:latest   # 替换为实际镜像地址
    container_name: relay
    restart: always
    ports:
      - "8080:8080"
    environment:
      - TZ=Asia/Shanghai
      - LOG_LEVEL=info
      - CONFIG_PATH=/data/config.yml
    volumes:
      - ./config.yml:/data/config.yml:ro
      - ./logs:/data/logs
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 5s
      retries: 3
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

配置项说明:

  • restart: always 让容器在异常退出或服务器重启后自动拉起,生产环境必加。
  • healthcheck 定期检查服务健康状态,配合服务发现或监控面板使用。
  • logging 限制日志体积,避免长期运行撑爆磁盘。
  • 配置文件通过 volume 挂载进容器,修改后只需 docker-compose restart relay 即可生效,不用重新构建镜像。

启动与验证

/opt/relay 目录下依次执行:

docker-compose up -d
docker-compose ps

看到 relay 状态为 Up、健康检查为 healthy 就说明启动成功。
接着测试转发功能:

curl -I http://服务器IP:8080/health

返回 200 OK 即正常。
如果使用 Nginx 反代,还要在 Nginx 配置中把域名指向本机 8080 端口,然后执行 nginx -s reload

常见报错排查

端口被占用:启动时提示 port is already allocated,先执行 ss -lntp | grep 8080 找出占用进程,释放端口或修改宿主机映射端口。

配置挂载无效:确保 config.ymldocker-compose.yml 在同一目录,且容器内读取路径和挂载路径完全一致。
否则容器会使用默认配置,导致行为异常。

健康检查失败:镜像里可能没有 curl 命令,会报 exec: "curl": executable file not found
可将健康检查命令改为 wget -q --spider http://localhost:8080/health 或使用开发语言自带的探活接口。

日志不输出/权限错误:检查宿主机 logs 目录是否具备写权限。
直接 chmod 755 logs 后重启容器通常能解决。

生产环境避坑清单

把下面几个细节处理到位,能省掉后续很多麻烦:

  • 固定镜像版本,不要用 latest。部署前锁定到具体 tag(如 relay:v2.1.3),避免更新导致意外变更。
  • 敏感信息用环境变量或 Docker Secret 管理,不要硬编码在 config.yml 中。
  • 在云服务器安全组和系统防火墙(firewalldufw)中开放映射端口,否则外部无法访问。
  • 定期执行 docker-compose pull 获取安全更新,并按镜像维护说明回滚兼容版本。
  • 如服务无内置持久化需求,建议在编排文件里关闭不必要的 volume 写入,减少磁盘碎片和备份体积。

模板调整与后续维护

生产环境没有一套配置通吃所有场景:如果你的中转服务需要 Redis 或数据库,在 services 下继续追加对应服务即可,Docker-Compose 会统一管理网络和数据卷。
升级软件时,先备份 /opt/relay 整个目录,再替换镜像 tag 并执行 docker-compose up -d,最后确认健康检查状态。

按照这份模板部署完成后,实际收益是:服务可随服务器重启自愈,日志有上限控制,配置变更可回滚,整个生命周期不再依赖人工手动启停。
若在部署中遇到其他问题,优先查看 docker-compose logs 输出,再结合本次提到的排错思路逐项核对。

分享到:
上一篇
Nginx代理出现504 Gateway Timeout
下一篇
公网扫描器大规模探测11434、7860
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意