Docker中搭建FastDFS⽂件系统(多图教程)
⽬录
关于FastDFS
1、搜索镜像
2、安装镜像
3.1、创建出所需要的⽬录
3.2、创建tracker容器(跟踪服务器容器)
3.3、创建storage容器(存储服务器容器)
3.4、client测试
3.4、修改f配置⽂件
4、⽂件上传测试
5、配置Nginx
关于FastDFS
FastDFS 是以 C 语⾔开发的⼀项开源轻量级分布式⽂件系统,他对⽂件进⾏管理,主要功能有:⽂件存储,⽂件同步,⽂件访问(⽂件上传/下载)等,特别适合以⽂件为载体的在线服务,如:图⽚⽹站,视频⽹站等。
本⽂基于,以下是正⽂内容:
1、搜索镜像
执⾏命令:
docker search fastdfs
然后界⾯会搜出⼀⼤堆镜像,选哪个呢?
⽼规矩,我们选择start数最多的准没错,什么?start数不放⼼,怕被挂马?ok,我们再去镜像仓库看⼀下:
补充:其实看这些镜像的描述也能看出⼀些区别来的,⽐如 ygqygq2/fastdfs-nginx,该镜像是整合了 Nginx 的 fastdfs,那么新的问题来了,为什么要整合 Nginx?因为对于 fastdfs 来说,安装后只能在本机访问… 我上传⽂件肯定是为了能够访问的呀,所以为了提供 web 访问,那么就需要集成 Nginx 了,但
是⽐如就是想⾃⼰单独搞 Nginx… 那么肯定就不会选了嘛,season/fastdfs 镜像相对纯净些,本⽂就是基于 season/fastdfs 镜像的,后⾯也附带配置 Nginx…
2、安装镜像
执⾏命令:
docker pull season/fastdfs:1.2
之所以选择 1.2 版本,防⽌再次更新后本⽂不适合 latest 版本,执⾏截图如下:
3、
创建容器并挂载⽬录
在创建容器之前我们先简单说⼀下 FastDFS,FastDFS 系统有三个⾓⾊:
跟踪服务器(Tracker Server):跟踪服务器,主要做调度⼯作,起到均衡的作⽤;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知⾃⼰所属 group 等信息,并保持
vim命令的作用是周期性⼼跳。
存储服务器(Storage Server):存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
客户端(Client):上传下载数据的服务器,也就是我们⾃⼰的项⽬所部署在的服务器。
说到这就是想告诉⼩伙伴,接下来我们可能创建跟踪服务器容器、存储服务器容器、客户端容器这三个容器…
3.1、创建出所需要的⽬录
我们先把需要的⼀些⽬录创建出来(数据⽬录、数据存储⽬录等),执⾏命令:
mkdir -p /usr/local/server/fastdfs/tracker/data
mkdir -p /usr/local/server/fastdfs/storage/data
mkdir -p /usr/local/server/fastdfs/storage/path
3.2、创建tracker容器(跟踪服务器容器)
执⾏命令:
docker run -id --name tracker \
-p 22122:22122 \
--restart=always --net host \
-v /usr/local/server/fastdfs/tracker/data:/fastdfs/tracker/data \
season/fastdfs:1.2 tracker
再唠叨⼀下上⽅命令:
-d:让容器在后台运⾏
-
p:指定容器内部使⽤的⽹络端⼝映射到我们使⽤的主机上
--name:指定容器创建的名称
-v:容器跟宿主机之间的挂载⽬录
3.3、创建storage容器(存储服务器容器)
执⾏命令(⾮最终执⾏命令,请修改为⾃⼰的ip地址):
docker run -id --name storage \
--restart=always --net host \
-v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \
-e TRACKER_SERVER="10.211.55.4:22122" \
season/fastdfs:1.2 storage
3.4、client测试
两个容器创建完之后,但此时两个容器其实并没有关联起来,我们进⼊tracker容器,通过f测试⼀下:
docker exec -it tracker bash
cd /etc/fdfs/
ls
f
输出的f都是默认配置,我们可以到其中的track_server地址:
尝试执⾏⼀下连接:
fdfs_f
然后会得到如下内容:
ERROR - file: ../common/connection_pool.c, line: 84, connect to 192.168.209.121:22122 fail, errno: 110, error info: Connection timed out 也就是在没有修改client配置之前,默认 tracker 是去连接192.168.209.121地址的,那么接下来就是需要去配置client配置⽂件了。
3.4、修改f配置⽂件
通过docker exec -it tracker bash进⼊ tracker 容器后不能使⽤ vi vim 命令,所以⼲脆将 f 配置⽂件复制出来,在宿主机修改完再粘贴回去。执⾏命令:
docker cp trakcer:/etc/f /usr/local/server/fastdfs/
我们通过 docker 指令将配置⽂件复制到/usr/local/server/fastdfs/⽬录。
我们编辑这个⽂件,修改 tracker_url 地址(f):
修改后保存,然后将修改后的⽂件替换回去。指令命令:
docker cp /usr/local/server/f tracker:/etc/fdfs
⾄此,配置⽂件修改完了,接下来我们创建⽂件上传测试⼀下。
4、⽂件上传测试
执⾏命令,进⼊ tracker 容器中:
docker exec -it tracker bash
随便创建⼀个 txt ⽂件:
echo "niceyoo" >
然后通过 fdfs_upload_file 命令将 ⽂件上传⾄服务器:
fdfs_upload_file /etc/
如果此时报了如下错误:
那么就创建⼀下这个路径,没有的跳过:
mkdir -p /home/yuqing/fastdfs
创建⽬录后重新尝试提交:
我们复制出这个⽂件名来:group1/M00/00/00/,这个名称后⾯有⽤,将⽤作后⾯配置nginx时配置访问⽂件路径。
因为我们之前挂载了宿主机的⽬录,我们去cd /usr/local/server/fastdfs看⼀下:
cd /usr/local/server/fastdfs/data/storage/data
ls
输出内容如下:
5、配置Nginx
前⾯的补充已经提到了,默认上传的⽂件是只能在本机访问的,当然这样肯定是不⾏的,所以我们需要配置⼀下Nginx 来帮我们实现 Web 访问的效果。创建nginx⽬录:
mkdir -p /usr/local/server/fastdfs/nginx/
将storage容器中的nginx配置⽂件复制出来:
docker cp storage:/etc/nginx/f /usr/local/server/fastdfs/nginx/
修改nginx中的配置:
vi /usr/local/server/fastdfs/f
到local节点,修改为:
location / {
root /fastdfs/store_path/data;
ngx_fastdfs_module;
}
相关截图如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。