欢迎光临海口市中国灵车网
详情描述

1. 单容器部署(推荐新手)

方式一:使用现成镜像(最简单)

# 拉取镜像
docker pull delron/fastdfs

# 运行 Tracker 服务
docker run -d --name tracker \
  -p 22122:22122 \
  -v /data/fastdfs/tracker:/var/fdfs \
  delron/fastdfs tracker

# 运行 Storage 服务
docker run -d --name storage \
  --net=host \
  -v /data/fastdfs/storage:/var/fdfs \
  -e TRACKER_SERVER=your_server_ip:22122 \
  -e GROUP_NAME=group1 \
  delron/fastdfs storage

2. 使用 docker-compose 部署(生产推荐)

docker-compose.yml 文件

version: '3'
services:
  fastdfs-tracker:
    image: delron/fastdfs
    container_name: fastdfs-tracker
    restart: always
    ports:
      - "22122:22122"
    volumes:
      - ./tracker_data:/var/fdfs
    command: tracker

  fastdfs-storage:
    image: delron/fastdfs
    container_name: fastdfs-storage
    restart: always
    depends_on:
      - fastdfs-tracker
    volumes:
      - ./storage_data:/var/fdfs
    environment:
      - TRACKER_SERVER=fastdfs-tracker:22122
    command: storage
    # 如果需要外网访问,使用 network_mode: "host"
    # network_mode: "host"

启动服务

# 创建目录
mkdir -p ./tracker_data ./storage_data

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

3. 官方镜像部署(更灵活)

使用 season/fastdfs 镜像

# 创建配置文件目录
mkdir -p /opt/fastdfs/{tracker,storage}

# 启动 Tracker
docker run -d --name tracker \
  -p 22122:22122 \
  -v /opt/fastdfs/tracker:/fastdfs/tracker/data \
  season/fastdfs:1.2 tracker

# 启动 Storage(带 Nginx)
docker run -d --name storage \
  -p 23000:23000 \
  -p 8888:8888 \
  -v /opt/fastdfs/storage:/fastdfs/storage/data \
  -e TRACKER_SERVER=192.168.1.100:22122 \
  season/fastdfs:1.2 storage

4. 自定义配置部署

步骤 1:准备配置文件

tracker.conf

# tracker 服务端口
port=22122
# 存储路径
base_path=/fastdfs/tracker

storage.conf

# tracker服务器地址
tracker_server=tracker:22122
# storage服务端口
port=23000
# 存储路径
base_path=/fastdfs/storage
store_path0=/fastdfs/storage

步骤 2:编写 Dockerfile

FROM ubuntu:20.04

# 安装依赖
RUN apt-get update && apt-get install -y \
    wget \
    gcc \
    make \
    libpcre3-dev \
    libssl-dev \
    libfastcommon-dev \
    && rm -rf /var/lib/apt/lists/*

# 下载 FastDFS
WORKDIR /tmp
RUN wget https://github.com/happyfish100/fastdfs/archive/V6.08.tar.gz \
    && tar -zxvf V6.08.tar.gz \
    && cd fastdfs-6.08 \
    && ./make.sh \
    && ./make.sh install

# 复制配置文件
COPY tracker.conf /etc/fdfs/tracker.conf
COPY storage.conf /etc/fdfs/storage.conf

# 启动脚本
COPY start.sh /usr/bin/start.sh
RUN chmod +x /usr/bin/start.sh

EXPOSE 22122 23000 8888

CMD ["/usr/bin/start.sh"]

步骤 3:启动脚本 start.sh

#!/bin/bash

if [ "$1" = "tracker" ]; then
    fdfs_trackerd /etc/fdfs/tracker.conf
elif [ "$1" = "storage" ]; then
    fdfs_storaged /etc/fdfs/storage.conf
fi

# 保持容器运行
tail -f /dev/null

5. 完整部署示例(带 Nginx 模块)

version: '3.8'

services:
  tracker:
    image: season/fastdfs:1.2
    container_name: tracker
    restart: always
    ports:
      - "22122:22122"
    volumes:
      - ./data/tracker:/fastdfs/tracker/data
    command: tracker
    networks:
      - fastdfs-net

  storage:
    image: season/fastdfs:1.2
    container_name: storage
    restart: always
    depends_on:
      - tracker
    volumes:
      - ./data/storage:/fastdfs/storage/data
    environment:
      - TRACKER_SERVER=tracker:22122
    ports:
      - "23000:23000"
      - "8888:8888"
    command: storage
    networks:
      - fastdfs-net

  nginx:
    image: nginx:1.21
    container_name: fastdfs-nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./data/storage:/data
    depends_on:
      - storage
    networks:
      - fastdfs-net

networks:
  fastdfs-net:
    driver: bridge

6. 测试 FastDFS 服务

# 进入容器
docker exec -it storage bash

# 测试上传
cd /var/fdfs
echo "Hello FastDFS" > test.txt
fdfs_upload_file /etc/fdfs/client.conf test.txt

# 通过 Nginx 访问
curl http://localhost/group1/M00/00/00/test.txt

7. 注意事项

数据持久化:一定要挂载数据卷,防止数据丢失 网络模式:生产环境建议使用 host 网络模式或自定义网络 端口开放
  • Tracker: 22122
  • Storage: 23000
  • Nginx: 80/8888
集群部署:修改 tracker_server 配置,支持多个 tracker 性能优化:调整 storage 的 store_path 数量

8. 故障排查

# 查看服务状态
docker ps -a
docker logs tracker
docker logs storage

# 进入容器检查配置
docker exec -it tracker cat /etc/fdfs/tracker.conf
docker exec -it storage fdfs_monitor /etc/fdfs/client.conf

这样你就可以快速部署一个 FastDFS 文件存储服务了。根据实际需求选择合适的部署方式。