记录一之mac系统的docker安装fastdfs

在安装好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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值