Overview

Full name
docker.io/garethflowers/ftp-server
Registry
docker.io
Namespace
garethflowers
Repository
ftp-server
Cached tags
31
Last synced
07/06/2026, 01:19 PM

Introduction

轻量 vsftpd FTP 服务器镜像,支持被动模式与用户卷挂载,适合内网文件交换、摄像头 FTP 上报或 legacy 系统对接。

Details

garethflowers/ftp-server 基于 Alpine 运行 vsftpd,通过环境变量创建虚拟用户并 chroot 到上传目录。典型用于 IoT 设备或旧系统仍依赖 FTP 的场景,与 SFTP 相比配置简单但明文传输(除非 FTPS)。生产应固定 tag、限制被动端口范围、启用 FTPS 或置于内网,FTP 账户密码定期轮换。

快速启动

docker run -d --name ftp-server \
  -p 21:21 -p 21000-21010:21000-21010 \
  -e FTP_USER=user -e FTP_PASS=pass \
  -v $(pwd)/upload:/home/user/upload \
  docker.io/garethflowers/ftp-server:latest

推荐实践

docker run -d --name ftp-server \
  --restart unless-stopped \
  -p 21:21 -p 21000-21010:21000-21010 \
  -e FTP_USER=camera -e FTP_PASS=strong-pass \
  -e PASV_ADDRESS=203.0.113.10 \
  -v /data/ftp/upload:/home/camera/upload \
  docker.io/garethflowers/ftp-server:1.0.0

核心参数说明

  • -p 21:21 — FTP 控制端口
  • -p 21000-21010:... — 被动模式数据端口范围
  • -e FTP_USER/PASS — 虚拟用户凭据
  • -e PASV_ADDRESS — 被动模式对外宣告 IP
  • -v .../upload:... — 上传文件持久化
  • --restart unless-stopped — 设备上报持续可用

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ftp-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ftp-server
  template:
    metadata:
      labels:
        app: ftp-server
    spec:
      containers:
        - name: ftp
          image: docker.io/garethflowers/ftp-server:1.0.0
          ports:
            - containerPort: 21
          envFrom:
            - secretRef:
                name: ftp-secrets
          volumeMounts:
            - name: upload
              mountPath: /home/camera/upload
      volumes:
        - name: upload
          persistentVolumeClaim:
            claimName: ftp-upload
---
apiVersion: v1
kind: Service
metadata:
  name: ftp-server
spec:
  type: LoadBalancer
  selector:
    app: ftp-server
  ports:
    - port: 21
      targetPort: 21

被动端口需 Service 额外 port 段或 hostNetwork;LoadBalancer 固定 PASV_ADDRESS,内网场景优先 NodePort。

Latest tags (20)

View all 31 tags →
TagArchPushed AtSizeDigestSyncWishAction
docker.io/garethflowers/ftp-server
:edge
linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390xlinux/386linux/amd64
2026/03/27 15:503.8 MBsha256:0763ea8c7a4b
docker.io/garethflowers/ftp-server
:latest
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2025/01/10 06:193.7 MBsha256:ae9ed81ef0e4
docker.io/garethflowers/ftp-server
:0
linux/amd64linux/386linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2025/01/10 06:183.8 MBsha256:bed6ae8f8649
docker.io/garethflowers/ftp-server
:0.9
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2025/01/10 06:183.7 MBsha256:ae9ed81ef0e4
docker.io/garethflowers/ftp-server
:0.9.2
linux/amd64linux/386linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2025/01/10 06:183.8 MBsha256:bed6ae8f8649
docker.io/garethflowers/ftp-server
:0.9.1
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2024/12/08 23:543.7 MBsha256:b781ea39e8c0
docker.io/garethflowers/ftp-server
:0.9.0
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2024/12/07 06:333.7 MBsha256:0a9025e19662
docker.io/garethflowers/ftp-server
:0.8
linux/arm/v7linux/386linux/amd64linux/arm/v6linux/arm64linux/ppc64lelinux/s390x
2024/11/25 01:553.3 MBsha256:86fde260672b
docker.io/garethflowers/ftp-server
:0.8.0
linux/arm64linux/386linux/amd64linux/arm/v6linux/arm/v7linux/ppc64lelinux/s390x
2024/11/25 01:554.3 MBsha256:e7d566f07d34
docker.io/garethflowers/ftp-server
:0.7
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/s390xlinux/ppc64le
2023/09/26 00:133.4 MBsha256:44f1f9be44bb
docker.io/garethflowers/ftp-server
:0.7.0
linux/386linux/amd64linux/arm/v7linux/arm64linux/ppc64lelinux/s390xlinux/arm/v6
2023/09/26 00:123.4 MBsha256:44f1f9be44bb
docker.io/garethflowers/ftp-server
:0.6
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/ppc64lelinux/s390x
2023/04/20 04:533.6 MBsha256:4577e7ce1d2c
docker.io/garethflowers/ftp-server
:0.6.0
linux/arm64linux/ppc64lelinux/s390xlinux/arm/v7linux/386linux/amd64linux/arm/v6
2023/04/20 04:533.5 MBsha256:efbf0d42620b
docker.io/garethflowers/ftp-server
:0.5
linux/386linux/amd64linux/arm/v6linux/arm/v7linux/arm64linux/s390xlinux/ppc64le
2022/10/20 17:553.0 MBsha256:b2581a39ff7a
docker.io/garethflowers/ftp-server
:0.5.0
linux/386linux/amd64linux/arm/v6linux/ppc64lelinux/arm/v7linux/arm64linux/s390x
2022/10/20 17:553.0 MBsha256:b2581a39ff7a
docker.io/garethflowers/ftp-server
:0.4
linux/386linux/arm/v7linux/s390xlinux/amd64linux/arm/v6linux/arm64linux/ppc64le
2022/10/13 18:373.0 MBsha256:3b41d0a95841
docker.io/garethflowers/ftp-server
:0.4.3
linux/arm/v6linux/ppc64lelinux/arm64linux/386linux/amd64linux/arm/v7linux/s390x
2022/10/13 18:372.8 MBsha256:2989c8465113
docker.io/garethflowers/ftp-server
:0.4.2
linux/arm64linux/ppc64lelinux/386linux/amd64linux/arm/v6linux/arm/v7linux/s390x
2022/07/04 06:382.9 MBsha256:56ac3dbd9db6
docker.io/garethflowers/ftp-server
:0.4.0
linux/arm/v6linux/386linux/arm64linux/ppc64lelinux/arm/v7linux/amd64linux/s390x
2022/01/23 06:512.8 MBsha256:493f30c6440f
docker.io/garethflowers/ftp-server
:0.3
linux/arm/v6linux/arm/v7linux/arm64linux/386linux/ppc64lelinux/amd64linux/s390x
2022/01/23 06:212.8 MBsha256:077ebbcf05c1