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地址