菜单

Docker 部署

相关源文件

本页面介绍了如何使用 Docker 容器部署 frp。它涵盖了 frp 服务器 (frps) 和 frp 客户端 (frpc) 的 Docker 镜像,包括如何获取、配置和运行它们。有关从源码构建 frp 的信息,请参阅 从源码构建

可用 Docker 镜像

frp 为客户端和服务器组件提供了官方 Docker 镜像。这些镜像针对多种架构进行了构建,并在 Docker Hub 和 GitHub Container Registry (GHCR) 上均可获得。

组件Docker HubGitHub 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 镜像支持以下架构

  • linux/amd64
  • linux/arm/v7
  • linux/arm64
  • linux/ppc64le
  • linux/s390x

Docker 会自动为您的系统架构拉取合适的镜像。

来源: .github/workflows/build-and-push-image.yml67-68 .github/workflows/build-and-push-image.yml78-79

基本用法

运行 frp 服务器 (frps)

使用自定义配置文件运行 frp 服务器

默认情况下,容器将运行 frps 二进制文件而不带任何参数。要指定配置文件位置

运行 frp 客户端 (frpc)

类似地,使用自定义配置文件运行 frp 客户端

来源: dockerfiles/Dockerfile-for-frps14 dockerfiles/Dockerfile-for-frpc14

Docker 部署架构

下图说明了 frp 组件如何使用 Docker 进行部署

来源: dockerfiles/Dockerfile-for-frps14 dockerfiles/Dockerfile-for-frpc14

Docker Compose 设置

Docker Compose 提供了一种便捷的方式来部署 frp 组件或将 frpc 与您现有的服务集成。

frp 服务器 Docker Compose 示例

frp 客户端 Docker Compose 示例

Docker 镜像详情

frp 的 Docker 镜像采用多阶段构建过程,以保持最终镜像的精简和安全。

来源: dockerfiles/Dockerfile-for-frpc1-14 dockerfiles/Dockerfile-for-frps1-14

环境变量

官方 frp Docker 镜像不原生支持环境变量配置。要配置 frp,您需要

  1. 创建配置文件
  2. 将其挂载到容器中
  3. 在运行容器时使用 -c 标志引用它

自定义 Docker 镜像

如果您需要自定义 frp Docker 镜像,可以使用提供的 Dockerfiles 构建自己的镜像。

Dockerfiles 位于 frp 仓库的 dockerfiles 目录中。

来源: dockerfiles/Dockerfile-for-frps1-14 dockerfiles/Dockerfile-for-frpc1-14

CI/CD集成

frp 项目使用 GitHub Actions 为每个版本自动构建和推送 Docker 镜像。该工作流在发布新版本时触发,或通过 workflow dispatch 功能手动触发。

来源: .github/workflows/build-and-push-image.yml3-83

最佳实践

  1. 始终使用特定的版本标签,而不是 latest,以确保可复现的部署。
  2. 将配置文件挂载为只读卷,以防止意外修改。
  3. 对 frpc 使用宿主机网络模式,以便轻松访问本地服务。
  4. 仅公开 frps 所需的端口,以最小化攻击面。
  5. 考虑使用 Docker secrets 来处理配置文件中的敏感信息。
  6. 使用 Docker health checks 来监控容器的健康状况。

故障排除

如果在 Docker 部署中遇到问题

  1. 检查容器日志

  2. 验证 frpc 和 frps 容器之间的网络连接

  3. 确保配置文件已正确挂载并格式正确。

  4. 检查端口映射,确保所需端口已公开。

更多资源

有关配置 frp 的更多信息,请参阅 配置 页面。