docker部署FastDFS分布式文件系统

 更新时间:2025年12月03日 10:37:01   作者:❀͜͡傀儡师  
FastDFS是一个轻量级、高性能的分布式文件系统,本文主要介绍了docker部署FastDFS分布式文件系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、fastdfs简介

FastDFS 是一个开源的、轻量级的分布式文件系统,主要用于管理文件,如图片、视频、文档等,解决海量文件存储和高并发访问的问题。

2、核心特性

  • 轻量级:不像 HDFS 那样“重”,没有依赖像 ZooKeeper 这样的复杂组件,部署和维护相对简单。
  • 高性能:专为文件存取设计,在高并发场景下,文件上传和下载速度非常快。
  • 高可用与可扩展:采用集群方式部署,存储节点可以轻松横向扩展。通过备份机制,确保数据不会因单点故障而丢失。
  • 负载均衡:Tracker Server 可以对上传和下载请求进行负载均衡,分散压力。
  • 专注于文件:它不提供文件“分块”功能(不像 HDFS),而是将每个文件作为一个整体来存储。因此,它不适合存储超大文件(如数百GB的电影),但非常适合存储大量的小文件,比如用户头像、商品图片、短视频等。

3、安装docker

1、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

2、配置docker yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker

yum install -y docker-ce

4、修改docker配置文件

mkdir /dta/docker -p
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
      "https://docker.credclouds.com",
      "https://k8s.credclouds.com",
      "https://quay.credclouds.com",
      "https://gcr.credclouds.com",
      "https://k8s-gcr.credclouds.com",
      "https://ghcr.credclouds.com",
      "https://do.nark.eu.org",
      "https://docker.m.daocloud.io",
      "https://docker.nju.edu.cn",
      "https://docker.mirrors.sjtug.sjtu.edu.cn",
      "https://docker.1panel.live",
      "https://docker.rainbond.cc"
    ],
   "data-root": "/data/docker"
}
EOF

5、启动docker

systemctl daemon-reload
systemctl enable docker --now
systemctl restart docker

6、安装docker-compose

# 下载docker-compose文件
curl -L "https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 执行权限
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 查看是否安装成功
docker-compose --version

4、拉取fastDFS镜像

docker pull delron/fastdfs:latest

5、创建数据目录

mkdir -p /data/fastdfs/{tracker,storage,conf}
mkdir -p /data/fastdfs/storage/{data,logs}
chmod 777 /data/fastdfs

6、安装tracker服务

docker run -d \
--name tracker \
--net host \
--restart always \
-v /etc/localtime:/etc/localtime \
-v /data/fastdfs/tracker:/fastdfs/tracker \
delron/fastdfs:latest tracker

7、安装Storage服务

docker run -d \
--name storage \
--net host \
--restart always \
-v /etc/localtime:/etc/localtime \
-v /data/fastdfs/storage/data:/fastdfs/store_path \
-v /data/fastdfs/storage/logs:/fastdfs/storage \
-e TRACKER_SERVER="172.16.12.115:22122" \
delron/fastdfs:latest storage

8、安装nginx服务

vi /data/fastdfs/conf/nginx.conf
worker_processes  4;

events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 
server {
    listen       8888;
    server_name  localhost;
    location /group1/M00 {
        root /fastdfs/store_path/data;
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       root   html;
    }
  }
}

启动nginx容器:

docker run -d \
--name nginx \
-v /etc/localtime:/etc/localtime \
-v /data/fastdfs/storage/data:/fastdfs/store_path \
-v /data/fastdfs/conf/nginx.conf:/etc/nginx/conf/nginx.conf \
--net=host \
-e TRACKER_SERVER="172.16.12.115:22122" \
delron/fastdfs:latest nginx

9、查看容器日志

docker logs -f tracker
docker logs -f storage
docker logs -f nginx

10、测试图片上传

docker exec -it storage bash
cd /var/fdfs/
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.png

11、验证

http://172.16.12.115:8888/group1/M00/00/00/wKg0D2kLeiyASd5qAATLbPP5NnY728.png

总结

FastDFS 可以理解为互联网领域,特别是中小型公司的“国民级分布式图片/文件服务器”。当你的应用需要存储和管理大量用户上传的文件,并且对性能和扩展性有要求时,FastDFS 是一个非常可靠和经典的选择。

到此这篇关于docker部署FastDFS分布式文件系统的文章就介绍到这了,更多相关docker FastDFS分布式文件系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS7虚拟机安装并配置docker套件

    CentOS7虚拟机安装并配置docker套件

    这篇文章主要介绍了CentOS7虚拟机安装并配置docker套件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Docker 安装Redis 无法使用配置文件设置密码问题及解决方法

    Docker 安装Redis 无法使用配置文件设置密码问题及解决方法

    最近开发需要使用各种组件,如果都到开发机上安装,会占用电脑资源较多,所以使用docker容器来安装这些组件,这篇文章主要介绍了Docker安装Redis无法使用配置文件设置密码问题,需要的朋友可以参考下
    2023-08-08
  • Docker镜像拉取失败问题分析及解决方案

    Docker镜像拉取失败问题分析及解决方案

    在使用Docker时,我们经常需要从Docker镜像仓库中拉取镜像,以便于在本地机器上运行,下面这篇文章主要给大家介绍了关于Docker镜像拉取失败问题分析及解决方案,需要的朋友可以参考下
    2024-08-08
  • docker容器DNS的解决全过程

    docker容器DNS的解决全过程

    容器默认继承宿主机DNS配置,修改宿主机/etc/resolv.conf后容器文件不自动同步,显式挂载时,使用echo修改避免inode变化,确保容器生效,可借助stat命令查看inode信息,并通过docker启动配置管理文件映射
    2025-09-09
  • 如何修改 docker 容器的启动参数

    如何修改 docker 容器的启动参数

    工作中我们经常遇到docker容器运行一段时间后,因为各种原因需要调整启动参数的情况,这篇文章主要介绍了如何修改 docker 容器的启动参数,需要的朋友可以参考下
    2023-09-09
  • Logshark调试Logstash及Filebeat pipelines使用详解

    Logshark调试Logstash及Filebeat pipelines使用详解

    这篇文章主要为大家介绍了Logshark调试Logstash及Filebeat pipelines使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • docker中run、start和create命令的区别

    docker中run、start和create命令的区别

    对于 Docker 初学者来说,docker start、docker run 和 docker create 等术语可能会令人困惑,本文就来介绍一下docker中run、start和create命令的区别,感兴趣的可以了解一下
    2023-11-11
  • Docker部署Mysql数据库步骤详解

    Docker部署Mysql数据库步骤详解

    Docker是一种流行的容器化平台,可以简化应用程序的部署和管理,在本博客中,我们将探讨如何使用Docker部署两个广泛使用的数据库:MySQL,我们将提供详细的步骤和相应的命令,以帮助您轻松地在Docker容器中设置和运行这个数据库
    2023-07-07
  • docker搭建kafka集群的方法实现

    docker搭建kafka集群的方法实现

    本文主要介绍了docker搭建kafka集群的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • docker+ddns实现动态域名的示例代码

    docker+ddns实现动态域名的示例代码

    本文主要介绍了Docker使用ddns-go实现动态域名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11

最新评论