docker部署Fastdfs

docker部署Fastdfs

为了通过 Docker 安装 FastDFS 并使其支持外部通过 HTTP 访问文件,我们需要配置一个包含 FastDFS 存储(storage)和跟踪(tracker)服务的环境,并正确设置 Nginx 或 HTTP 服务来提供文件访问。

以下是具体步骤:


1. 环境准备

确保你的服务器已安装 DockerDocker Compose。如果未安装,可以参考以下命令:

# 安装 Docker
sudo apt update -y
sudo apt install -y docker.io

# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

2. 拉取 FastDFS 镜像

使用以下命令从 Docker Hub 拉取 FastDFS 和带 HTTP 服务的镜像(如包含 Nginx 的 FastDFS 镜像):

docker pull delron/fastdfs-nginx

这个镜像整合了 FastDFS 的 tracker、storage 和 Nginx 服务,可直接用于文件管理和 HTTP 文件访问。


3. 编写 docker-compose.yml

创建一个名为 docker-compose.yml 的文件,并添加以下内容:

version: '3.9'
services:
  tracker:
    image: ygqygq2/fastdfs-nginx
    container_name: fastdfs-tracker
    ports:
      - "22122:22122"
    volumes:
      - /data/fastdfs/tracker:/var/fdfs
    environment:
      TRACKER_SERVER_PORT: 22122
    command: tracker

  storage:
    image: ygqygq2/fastdfs-nginx
    container_name: fastdfs-storage
    ports:
      - "23000:23000"
      - "8888:8080"  # HTTP 服务端口
    depends_on:
      - tracker
    volumes:
      - /data/fastdfs/storage:/var/fdfs
    environment:
      TRACKER_SERVER_PORT: 22122
      TRACKER_SERVER: fastdfs-tracker:22122
      STORAGE_SERVER_PORT: 23000
      GROUP_NAME: group1
      NGINX_PORT: 8888
    command: storage

4. 启动服务

运行以下命令启动 FastDFS

sudo docker-compose up -d

启动后会创建三个容器:

  • fastdfs-tracker: 负责跟踪管理。
  • fastdfs-storage: FastDFS 的存储服务,存放文件。
  • fastdfs-nginx: 用于外部访问的 Nginx 服务。

5. 配置文件访问

FastDFS 默认生成的 HTTP URL 格式为:

http://<your-server-ip>:8080/group1/M00/xx/xx/filename

例如:

http://192.168.0.100:8080/group1/M00/00/00/sample_file.jpg
文件上传测试
  1. 进入存储容器

    docker exec -it fastdfs-storage /bin/bash
    

```

  1. 上传文件
    使用 fdfs_upload_file 命令上传文件:

    fdfs_upload_file /etc/fdfs/client.conf /path/to/your/file.jpg
    

```

上传成功后,会返回类似如下的文件路径:

group1/M00/00/00/wKhiyVdfkweA.jpg
&#x20;  ```

3. **通过 HTTP 访问**:
&#x20;  在浏览器中访问下面的 URL:

http://:8080/group1/M00/00/00/wKhiyVdfkweA.jpg

```

<your-server-ip>


6. 数据持久化与防火墙配置

数据持久化:

确保 tracker_data, storage_data, nginx_data 挂载成功,以防 FastDFS 服务重启后数据丢失。

开放防火墙端口:

确保以下端口对外开放,以支持访问:

  • 22122 (tracker 服务)
  • 23000 (storage 服务)
  • 8080 (HTTP 文件访问)

7. 常见问题处理

  1. 返回 404 错误
    • 确保 Nginx 已正确挂载 FastDFS 目录。
    • 确保文件路径返回与 URL 一致。
  2. HTTP 访问异常
    • 确保 TRACKER_SERVERdocker-compose.yml 中被正确设置为 tracker 容器的主机名和端口。
    • 检查防火墙规则,确保端口 8080 开放。
  3. 挂载时数据无法保存
    • 检查 docker-compose.yml 文件中 volumes 的文件挂载路径是否设置正确。
    • 确保宿主机的挂载路径目录已有写入权限。

通过上述步骤,你现在应该已经完成了基于 Docker 安装 FastDFS 的任务,并可以通过 HTTP 访问上传的文件了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值