最近需要在虚拟机的 CentOS8 上安装一个 FasdDFS,用于本地单机环境下使用,但是网上找了很多教程都不太好用,要么直接无法安装,要么重启 CentOS8 系统后就无法启动 Docker 容器,最终通过不断尝试,总结出了一个比较靠谱的方法
首先使用的 Docker 镜像是 ygqygq2/fastdfs-nginx。网上教程比较多的 season/fastdfs 和 delron/fastdfs 我都尝试过,但总会有些问题。
其次,每次关闭 CentOS 系统时都需要先关闭 FastDFS(先关闭 storage,再关闭 tracker),否则下次会无法启动 storage!
这里建议如果使用的是 VMWare 虚拟机,一定要及时保存下快照,方便出错了能恢复
第一步:安装 FastDFS
- 下载镜像
docker pull ygqygq2/fastdfs-nginx
- 查看镜像
使用这个命令查看有没有刚才下载好的镜像docker images
- 安装 tracker
注意:要先安装 tracker,再安装 storagedocker run -dit --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs ygqygq2/fastdfs-nginx:latest tracker
- 安装 storage
注意:TRACKER_SERVER 要配置自己的 IP 地址,端口默认 22122docker run -dit --network=host --name storage -e TRACKER_SERVER=192.168.100.200:22122 -v /var/fdfs/storage:/var/fdfs ygqygq2/fastdfs-nginx:latest storage
- 查看
使用这个命令查看所有容器,查看有没有刚才安装的两个容器docker ps -a
完成上面的步骤已经安装好了 tracker 和一个 storage,如果需要搭集群可以继续安装更多 storage。
在浏览器输入 http://192.168.100.200:8080/ ,如果跳转到 Welcome to tengine! (Tengine 是基于 Nginx 开发的,兼容 Nginx 的配置)页面则说明安装成功
第二步:配置(可省略)
Nginx 默认端口号是 8080,但我希望通过 80 端口访问,需要进行 Nginx 配置
- 进入 storage 容器
docker exec -it c37768f52447 /bin/bash
- 修改 storage.conf 配置文件
做如下修改:vi /etc/fdfs/storage.conf
# is this config file disabled # false for enabled # true for disabled # 配置 http 访问端口 http.server_port=80 disabled=false ...
- 修改 nginx.conf 配置文件
在 http{} 配置的最后添加:vi /usr/local/nginx/conf/nginx.conf
server { listen 80; server_name localhost; location ~/group[0-9]/ { ngx_fastdfs_module; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
- 重启 storage 容器
exit #先退出容器 docker stop [容器 ID] docker start [容器 ID]
此时已经完成了 Nginx 配置。在浏览器中输入 http://192.168.100.200/ ,如果跳转到 Welcome to tengine! 页面则说明修改成功
第三步:上传文件
- 先找一个文件(我这里找了一张名为 logo.jpeg 的图片),用 xftp 上传到 CentOS 的 /var/fdfs/storage 目录下
由于在安装容器时做了目录映射,所以这个文件在 storage 容器 /var/fdfs/ 目录下也能访问 - 进入 storage 容器(如果已经在容器里可以忽略这一步)
docker exec -it c37768f52447 /bin/bash
- 上传文件
执行上面的上传命令后,会返回一个如下的路径cd /var/fdfs /usr/bin/fdfs_upload_file /etc/fdfs/client.conf logo.jpeg
group1/M00/00/00/wKhkyGCfZESAKmT8AAEh4v9GG-495.jpeg
- 测试
打开浏览器,访问 http://192.168.100.200/group1/M00/00/00/wKhkyGCfR8KADCkgAAEh4v9GG-497.jpeg ,出现图片就成功了
如果没有做第二步的 Nginx 配置,需要加上 8080 端口号