mac系统下使用docker安装FastDFS文件存储系统

Docker安装运行FastDFS

1、获取FastDFS镜像

# 从仓库拉取镜像
sudo docker image pull delron/fastdfs

2、开启tracker容器

将tracker运行目录映射到宿主机桌面上的fdfs目录下的tracker目录中(前提在宿主机的桌面已经创建了 fdfs 文件夹)

sudo docker run -d --name tracker -p 22122:22122 -v ~/Desktop/fdfs/tracker:/var/fdfs delron/fastdfs tracker 

3、开启storage容器

TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1,本机的ip地址)
将storage运行目录映射到宿主机桌面上的 /fdfs/storage 目录中

sudo docker run -dti --name storage -p 8888:8888 -p 23000:23000 -e TRACKER_SERVER=192.168.0.111:22122 -v ~/Desktop/fdfs/storage:/var/fdfs delron/fastdfs storage

4、查看宿主机映射路径
在这里插入图片描述
5、修改tracker容器中etc目录下的fdfs目录下的storage.conf文件

由于docker容器中没有vim命令来直接修改文件内容,所以这里采取将文件先拷贝出来,修改,再拷贝回去的方式

docker cp tracker:/etc/fdfs/storage.conf ~/

在这里插入图片描述

vim storage.conf

找到如下这块区域,修改ip地址为宿主机的ip地址即可。
在这里插入图片描述
保存,关闭,拷贝回tracker容器中。

docker cp ~/storage.conf tracker:/etc/fdfs/

重启tracker和storage容器。

进入tracker容器或者进入storage容器去测试看看两者是否互通。

docker exec -it tracker bash

进入容器后运行这个命令看结果

fdfs_monitor /etc/fdfs/storage.conf

如果出现如图所示的内容,恭喜你,成功了。
在这里插入图片描述
注意⚠️:你在测试的时候有可能连通不了,client网段与容器内网段不同的问题,那么很有可能是mac系统下docker内部的网络桥的问题,具体解决办法如下

在这里插入图片描述
参考博文:https://github.com/tobato/fastdfs_client/wiki/%E4%BD%BF%E7%94%A8docker%E6%90%AD%E5%BB%BA%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98

FastDFS客户端上传文件

1、安装FastDFS客户端扩展
github上下载 fdfs_client-py-master.zip 进行安装

pip install fdfs_client-py-master.zip
pip install mutagen==1.40
pip install requests

2、准备FastDFS客户端扩展的配置文件

在你的项目中,新建一个fastdfs的包,再新建一个文件client.conf,配置信息如下

# connect timeout in seconds
# default value is 30s
connect_timeout=30

# network timeout in seconds
# default value is 30s
network_timeout=60

# the base path to store log files
base_path=/var/fdfs

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
#tracker_server=192.168.0.197:22122
tracker_server=192.168.31.109:22122

#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info

# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false

# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600

# if load FastDFS parameters from tracker server
# since V4.05
# default value is false
load_fdfs_parameters_from_tracker=false

# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V4.05
use_storage_id = false

# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.05
storage_ids_filename = storage_ids.conf


#HTTP settings
http.tracker_server_port=80

#use "#include" directive to include HTTP other settiongs
##include http.conf


在这里插入图片描述

3、FastDFS客户端实现文件存储
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

浏览器下载并渲染图片

IP地址就是storage的IP地址
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值