本页面介绍了如何使用 Docker 容器部署 frp。它涵盖了 frp 服务器 (frps) 和 frp 客户端 (frpc) 的 Docker 镜像,包括如何获取、配置和运行它们。有关从源码构建 frp 的信息,请参阅 从源码构建。
frp 为客户端和服务器组件提供了官方 Docker 镜像。这些镜像针对多种架构进行了构建,并在 Docker Hub 和 GitHub Container Registry (GHCR) 上均可获得。
| 组件 | Docker Hub | GitHub Container Registry |
|---|---|---|
| frp 服务器 | fatedier/frps:[tag] | ghcr.io/fatedier/frps:[tag] |
| frp 客户端 | fatedier/frpc:[tag] | ghcr.io/fatedier/frpc:[tag] |
其中 [tag] 代表您想使用的 frp 版本(例如 v0.52.3)。
来源: .github/workflows/build-and-push-image.yml53-61
官方 frp Docker 镜像支持以下架构
Docker 会自动为您的系统架构拉取合适的镜像。
来源: .github/workflows/build-and-push-image.yml67-68 .github/workflows/build-and-push-image.yml78-79
使用自定义配置文件运行 frp 服务器
默认情况下,容器将运行 frps 二进制文件而不带任何参数。要指定配置文件位置
类似地,使用自定义配置文件运行 frp 客户端
来源: dockerfiles/Dockerfile-for-frps14 dockerfiles/Dockerfile-for-frpc14
下图说明了 frp 组件如何使用 Docker 进行部署
来源: dockerfiles/Dockerfile-for-frps14 dockerfiles/Dockerfile-for-frpc14
Docker Compose 提供了一种便捷的方式来部署 frp 组件或将 frpc 与您现有的服务集成。
frp 的 Docker 镜像采用多阶段构建过程,以保持最终镜像的精简和安全。
来源: dockerfiles/Dockerfile-for-frpc1-14 dockerfiles/Dockerfile-for-frps1-14
官方 frp Docker 镜像不原生支持环境变量配置。要配置 frp,您需要
-c 标志引用它如果您需要自定义 frp Docker 镜像,可以使用提供的 Dockerfiles 构建自己的镜像。
Dockerfiles 位于 frp 仓库的 dockerfiles 目录中。
来源: dockerfiles/Dockerfile-for-frps1-14 dockerfiles/Dockerfile-for-frpc1-14
frp 项目使用 GitHub Actions 为每个版本自动构建和推送 Docker 镜像。该工作流在发布新版本时触发,或通过 workflow dispatch 功能手动触发。
来源: .github/workflows/build-and-push-image.yml3-83
latest,以确保可复现的部署。如果在 Docker 部署中遇到问题
检查容器日志
验证 frpc 和 frps 容器之间的网络连接。
确保配置文件已正确挂载并格式正确。
检查端口映射,确保所需端口已公开。
有关配置 frp 的更多信息,请参阅 配置 页面。