docker搭建单机FastDFS文件存储服务器

目录

  • 一、FastDFS是什么?
  • 二、工作原理
    • 1.FastDFS服务端角色
    • 2.工作原理
    • 3.工作流程
  • 二、使用docker搭建FastDFS文件系统
    • 1.下载FastDFS文件系统的docker镜像
      • 1.1 查找dockerhub中fastdfs的镜像
      • 1.2 拉取选择的镜像
      • 1.3 查看docker镜像
    • 2.使用docker镜像构建tracker容器
    • 3.使用docker镜像构建storage容器
    • 4.查看正在运行的镜像
    • 5.查看storage容器配置
    • 6.配置Nginx
    • 7.上传图片验证
  • 总结

一、FastDFS是什么?

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:

  • 文件存储
  • 文件同步
  • 文件访问(文件上传、文件下载)等

解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

二、工作原理

1.FastDFS服务端角色

  • tracker 跟踪器:主要做调度工作,在访问上起负载均衡的作用;其中所有的跟踪器服务都是对等平级的,可以根据服务器的压力的大小随时增加或减少。
  • storage 存储节点:完成文件管理的所有功能(主要用于存储文件,存储完成后会返回一个地址给tracker)。

为了可以支持扩容,跟踪器和存储节点都可以由一台或多台服务器构成。如果访问的压力大,可以多增加跟踪器,如果存储量大,可以增加多个存储节点,同时,可以把同一存储节点进行备份(back-up)。

2.工作原理

docker搭建单机FastDFS文件存储服务器_第1张图片

FastDFS分为Tracker、Storage,其中Storage负责存储文件,Tracker负责存储文件所在地址,主要作用是负载均衡和资源调度。

Tracker、Storage都可以实现集群部署,Tracker的每个节点地位平等,而Storage可以分为多个组,每个组之间保存的文件是不同的,组内部分为多个成员,每个成员保存的内容是一样,组成员地位一致,没有主从概念。

使用FastDFS存储文件优点:可以应对互联网的海量文件存储,一旦文件较多,可以随时横向扩展,且集群的实现也使系统不存在单点故障问题,用户不会因为服务器宕机而无法访问文件资源。

3.工作流程

文件上传:Client会先向Tracker询问存储地址,Tracker查询到存储地址后返回给Client,Client拿着地址直接和对应的Storage通讯,将文件上传至改Storage。
docker搭建单机FastDFS文件存储服务器_第2张图片
文件下载:同样,Client会向Tracker询问地址,并带上要查询的文件名和组名,Tracker查询后会将地址返回给Client,Client拿着地址和指定Storage通讯并下载文件。
docker搭建单机FastDFS文件存储服务器_第3张图片

二、使用docker搭建FastDFS文件系统

1.下载FastDFS文件系统的docker镜像

1.1 查找dockerhub中fastdfs的镜像

docker search fastdfs
docker搭建单机FastDFS文件存储服务器_第4张图片

1.2 拉取选择的镜像

docker pull delron/fastdfs
docker搭建单机FastDFS文件存储服务器_第5张图片

1.3 查看docker镜像

docker images
查看docker镜像

2.使用docker镜像构建tracker容器

启动镜像并且将容器挂载到本机的/var/fdfs/tracker下
docker run -d --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

  • -d:守护进程
  • --name:命名
  • -v:挂载
    使用docker镜像构建tracker容器

3.使用docker镜像构建storage容器

启动镜像并且将容器挂载到本机的/var/fdfs/storage下,tracker服务的ip地址,端口默认是22122
docker run -d --network=host --name storage -e TRACKER_SERVER=ip:22122 -v /var/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
使用docker镜像构建storage容器

4.查看正在运行的镜像

docker ps
查看正在运行的镜像

此时两个服务都已启动

5.查看storage容器配置

进入storage容器,到storage的配置文件中皮质http访问的端口,配置文件在/etc/fdfs目录下的storage.conf。
docker exec -it storage /bin/bash
docker搭建单机FastDFS文件存储服务器_第6张图片
vi storage.conf
docker搭建单机FastDFS文件存储服务器_第7张图片
默认请求端口是8888

6.配置Nginx

在/usr/local/nginx目录下,修改nginx.conf文件

cd /usr/local/nginx/
ll
cd conf/
ls
vi nginx.conf

默认配置如下
docker搭建单机FastDFS文件存储服务器_第8张图片
修改成

location /group1/M00 {
    alias  /var/fdfs;
}

到这里文件系统已搭建完成。

7.上传图片验证

将图片放置在/var/fdfs/storage目录下,进入storage容器,进入/var/fdfs目录,运行下面命令:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf demo.jpeg
图片上传至文件系统
执行后会返回图片存储的uri
通过url访问http://ip:8888/group1/M00/00/00/rBCVGGFpH32AO9LmAAA9CQNjvWc43.jpeg
docker搭建单机FastDFS文件存储服务器_第9张图片

总结

docker搭建单机FastDFS文件存储服务器就到这里啦。

你可能感兴趣的:(docker,fastdfs)