李小白踩坑实录不定期篇:Docker安装fastDFS

编程入门 行业动态 更新时间:2024-10-10 09:26:09

李小白踩坑<a href=https://www.elefans.com/category/jswz/34/1766306.html style=实录不定期篇:Docker安装fastDFS"/>

李小白踩坑实录不定期篇:Docker安装fastDFS

最近小白需要使用fastDFS,就想用docker搭建一个DFS环境,方便快捷。又开始了踩坑之旅……

搜索一下现有docker镜像

[root@lixiaobai~]# docker search fastdfs
NAME                           DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
season/fastdfs                 FastDFS                                         49                                      
luhuiguo/fastdfs               FastDFS is an open source high performance d…   22                                      [OK]
morunchang/fastdfs             A FastDFS image                                 15                                      
ygqygq2/fastdfs-nginx          整合了nginx的fastdfs                                11                                      [OK]
delron/fastdfs                                                                 6                                       

使用第一个

docker pull season/fastdfs

创建相应目录结构

cd ~
mkdir fastDfsData
cd fastDfsData
mkdir storage
mkdir store_path
mkdir tracker

准备工作完毕  开始踩坑 以下是错误示范  先别忙着操作(没踩前不知道o(╥﹏╥)o)

启动tracker,storage

docker run -d --name fastdfs-tracker -p 22122:22122 -p 23000:23000 -v ~/fastDfsData/tracker:/fastdfs/tracker/data --net=host season/fastdfs trackerdocker run -d --name fastdfs-storage -v ~/fastDfsData/storage:/fastdfs/storage/data -v ~/fastDfsData/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER=your-ip:22122 season/fastdfs storage

坑一: --host=net  使用这个模式 -p 开放的端口会不起作用  容器启用默认开放的端口 22122

查看日志docker logs -f fastdfs-storage 连接不上 本机的 your_ip:22122 

查了一些资料 有说 阿里云的IP没备案不能用……我用备过案的IP,此处省略1000次,依然不行。

坑二:于是放弃  不使用--net=host 如下

docker run -d --name fastdfs-tracker -p 22122:22122 -p 23000:23000 -v ~/fastDfsData/tracker:/fastdfs/tracker/data season/fastdfs trackerdocker run -d --name fastdfs-storage -v ~/fastDfsData/storage:/fastdfs/storage/data -v ~/fastDfsData/store_path:/fastdfs/store_path -e TRACKER_SERVER=your_ip:22122 season/fastdfs storage

(如果你没听话照着做了要删现有的容器 此处省略 docker stop, docker rm镜像操作)

查看日志 docker logs -f fastdfs-storage 发现 连不上 your_ip:22122  这回试试 docker inspect  fastdfs-storage 

查看桥接模式下 分配的IP

把这个IP设置为配置文件的tracker_server 重启 发现storage连接成功。 总算好了

于是在本地用代码测试上传文件。失败。

本地机器 连不上 storage 端口23000的容器内网络。于是我把代码部署到阿里云 再测,可以上传成功。

但是本地上传不成功 难道到这里就放弃了吗……

不行!

反思一下:通过 这几次的测试,1.连不上storage,2.配上了容器桥接的ip地址连上了 却不能公网访问。

于是小白有个大胆的想法:存储23000端口 应该在storage上开放。有了下面的配置

这个是亲测成功的,可以尝试了!

docker run -d --name fastdfs-tracker -p 22122:22122 -v ~/fastDfsData/tracker:/fastdfs/tracker/data season/fastdfs trackerdocker run -d --name fastdfs-storage -p 23000:23000 -v ~/fastDfsData/storage:/fastdfs/storage/data -v ~/fastDfsData/store_path:/fastdfs/store_path -e TRACKER_SERVER=your_ip:22122 season/fastdfs storage

(如果你又没听话照着做了要删现有的容器 此处省略 docker stop, docker rm镜像操作)

这次发现不用把storage改成桥接的IP地址 直接用公网地址 也能连接成功了 本地代码测试 文件可以正常上传。

查看日志 连接成功 激动 ^.^

INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server your_ip:22122, as a tracker client

文章末尾:假设你会编写代码 测试文件上传,如果不会我也不会贴代码。^_^

但是可以给点建议:使用Spring Initializr 创建一个带web组件的项目 加入 dfs依赖

<dependency><groupId>com.luhuiguo</groupId><artifactId>fastdfs-spring-boot-starter</artifactId><version>0.2.0</version>
</dependency>

配置yml文件

fdfs:connect-timeout: 10000tracker-list: your_ip:22122so-timeout: 3000spring:servlet:multipart:max-file-size: 10485760

测试代码

@Autowired
private FastFileStorageClient storageClient;@PostMapping("/test")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {String extension = FilenameUtils.getExtension(file.getOriginalFilename());StorePath sp = storageClient.uploadFile("group1",file.getInputStream(),file.getSize(),extension);System.out.println(sp.getGroup());System.out.println(sp.getPath());
}

页面

<form method="post" enctype="multipart/form-data" action="test">文件<input type="file" name="file"><input type="submit" value="上传">
</form>

好了,小白踩坑不定期,欢迎下次收看。探索路上,一起前行……

O(∩_∩)O~

更多推荐

李小白踩坑实录不定期篇:Docker安装fastDFS

本文发布于:2024-02-27 19:17:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765809.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实录   李小白踩坑   fastDFS   Docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!