docker部署FastDFS分布式文件系统
作者:❀͜͡傀儡师
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分布式文件系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
