1、 获取镜像
docker search fastdfs
选择用 delron/fastdfs 这个
2、创建挂载目录
在/home下 创建 tracker目录,同时在创建storage目录
3、启动 tracker 容器
docker run -d --network=host --name tracker -v /home/tracker:/var/fdfs delron/fastdfs 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
第二步引入依赖
org.csource
fastdfs-client-java
1.29
第三步 代码
@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