Docker 搭建FastDFS文件系统

1、 获取镜像

docker search fastdfs

选择用 delron/fastdfs 这个

 

2、创建挂载目录

在/home下 创建 tracker目录,同时在创建storage目录

 

3、启动 tracker 容器

docker run -d --network=host --privileged=true --name tracker -v /home/tracker:/var/fdfs docker.io/delron/fastdfs:latest tracker

 

4、启动 storage容器

docker run -d --network=host --name storage -e TRACKER_SERVER=192.168.1.9:22122 -v /home/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage

注意192.168.1.9 要换成实际机器的IP

 

5、进入到storage容器内

 docker exec -it storage bash

进入容器中后你会发现进入了一个nginx文件下,是的没错!fastdfs容器自带了nginx。

fastdfs默认的端口有三个8888,23000,22122,分别解释一下

8888是默认的nginx代理端口

23000是storage服务端口

22122是tracker服务端口

6、开防火墙端口

firewall-cmd --zone=public  --permanent --add-port=23000/tcp

firewall-cmd --zone=public  --permanent --add-port=22122/tcp

firewall-cmd --zone=public  --permanent --add-port=8888/tcp

7、将一张图片上传到fastdfs服务上,看看效果

在宿主机的挂载目录/home/storage目录下放置一个文件: 1.jpg

进入storage容器内,

cd /var/fdfs

运行命令

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg

这样就可以访问了

192.168.1.9:8888/group1/M00/00/00/wKgNE18ZM2GAaaf7AA3jGhmu5ho008.jpg

 

参考:

http://www.zuidaima.com/blog/4653383732808704.htm

https://blog.csdn.net/wufewu/article/details/84801600

https://blog.csdn.net/qq_40369435/article/details/91512431

 

[java上传文件]

第一步: 本地maven构建jar

 

https://github.com/happyfish100/fastdfs-client-java

 

第二步引入依赖

        <dependency>
            <groupId>org.csource</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.29</version>
        </dependency>

第三步 代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallManageWebApplicationTests {

	@Test
	public void contextLoads() throws IOException, MyException {

		// 配置fdfs的全局链接地址
		String tracker = GmallManageWebApplicationTests.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
		ClientGlobal.init(tracker);

		TrackerClient trackerClient = new TrackerClient();

		// 获得一个trackerServer的实例
		TrackerServer trackerServer = trackerClient.getConnection();

		// 通过tracker获得一个Storage链接客户端
		StorageClient storageClient = new StorageClient(trackerServer,null);

		String[] uploadInfos = storageClient.upload_file("d:/a.jpg", "jpg", null);

		String url = "http://192.168.2.128";

		for (String uploadInfo : uploadInfos) {
			url += "/"+uploadInfo;

			//url = url + uploadInfo;
		}
		System.out.println(url);
	}
}

tracker.conf

tracker_server=192.168.2.128:22122

# 连接超时时间,针对socket套接字函数connect,默认为30秒
connect_timeout=30000

# 网络通讯超时时间,默认是60秒
network_timeout=60000

参考:

https://www.cnblogs.com/heliusKing/p/11734598.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值