在安装好docker的前提下获取镜像可以通过下载
docker pull delron/fastdfs
启动tracker,这里我把fast存储路径放在自己的桌面/Users/apple/Desktop/fdfs/tracker,注意可别放在/var/fdfs/tracker,看到一些博客放在这下面,初步分析是权限的问题
docker run -d -p 22122:22122 --name tracker --net=my-net -v /Users/apple/Desktop/fdfs/tracker:/var/fdfs delron/fastdfs tracker
启动storage,这里的192.168.1.102是自己的ip,通过ifconfig查询得到,同样storage也是放在桌面上
docker run -d -p 8888:8888 -p 23000:23000 --name storage --net=my-net -e TRACKER_SERVER=192.168.1.102:22122 -v /Users/apple/Desktop/fdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
修改tracker的配置文件,由于docker容器中没有vim命令来直接修改文件内容,所以这里采取将文件先拷贝出来,修改,再拷贝回去的方式
docker cp tracker:/etc/fdfs/storage.conf ~/
打开storage.conf配置文件,修改tracker_server的ip为自己的ip,即192.168.1.102
vim storage.conf
重启tracker和storage容器。
docker restart storage
docker restart tracker
进入tracker容器或者进入storage容器去测试看看两者是否互通。
docker exec -it tracker bash
进入容器后运行这个命令看结果:
fdfs_monitor /etc/fdfs/storage.conf
如果出现如图所示的内容,恭喜你,成功了。
但是,你一定还会踩这个坑。在上传测试的时候你会发现报错:connect to 172.18.0.1:23000. timed out 原因是storage容器注册在tracker容器中用的是容器网段ip,所以返回给python服务器端的ip也是该ip,导致无法访问到172.18.0.1(我本机docker下tracker分配的内网地址,可使用docker exec -it tracker /bin/bash ,使用ifconfig命令查看。上图其实也是能看到这个ip)
解决方法: 给mac的lo0设置别名即可,注意不是容器设置别名哈
sudo ifconfig lo0 alias 172.18.0.1
sudo ifconfig lo0 alias 10.0.75.2
设置完毕后在客户端访问172.18.0.1:23000时,会转向访问本机的127.0.0.1:23000
需要注意的是这样设置了后,以后所有的172.18.0.1地址都会转向127.0.0.1。
python在pycharm的shell中测试
测试代码如下:
from fdfs_client.client import Fdfs_client
client = Fdfs_client('/Users/apple/Desktop/技术栈/Django/meiduo_project/meiduo_mall/meiduo_mall/utils/fastdfs_storage/client.conf')
ret = client.upload_by_filename("/Users/apple/Desktop/头像.png")
getting connection
<fdfs_client.connection.Connection object at 0x7f8bc6e7d400>
<fdfs_client.fdfs_protol.Tracker_header object at 0x7f8bc6e7d320>
ret
{'Group name': 'group1', 'Remote file_id': 'group1/M00/00/00/rBIAA2GdCvWAKZDOAABGIZKi98E299.png', 'Status': 'Upload successed.', 'Local file name': '/Users/apple/Desktop/头像.png', 'Uploaded size': '17.00KB', 'Storage IP': '172.18.0.1'}
还原命令:切记测试完记得还原
sudo ifconfig lo0 -alias 10.0.75.2
sudo ifconfig lo0 -alias 172.18.0.1
Original: https://blog.csdn.net/weixin_42689212/article/details/121506107
Author: 皮皮虾不皮呀
Title: 记录一之mac系统的docker安装fastdfs
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/735086/
转载文章受原作者版权保护。转载请注明原作者出处!