docker for windows/mac 下 fastdfs/fdfs 测试环境配置

问题

在 windows 下,docker 配置 fdfs 后,宿主机通过 tracker 配置的端口映射能够访问到,但是 storage 注册的时候提供的是 docker 容器内的 172.*.*.* 的 ip,这个 ip 是不能被 windows 宿主机直接访问的。


原因

docker for windows/mac 由于系统方面的原因,不支持常规帖子里提到的、linux 才支持的 --network=host 模式,最终导致了 windows 下通过 tracker 访问不到 storage 节点,更获取不到数据了。


思路

storage 节点的访问端口通过映射到宿主机上后,只需要把 172 指向宿主机,源端口访问即可


步骤
  1. 安装 windows 环回网卡,并改名为 lo0(只是为了方便输入,其功能和 mac 下 lo0 完全一致),具体百度。

  2. docker-compose.yml 内定义桥接网段,指定 tracker 和 storage 的 ip。下面是我的 docker-compose.yml 文件

    version: '3.5' # docker for windows 18+
    services:
      tracker:
        image: luhuiguo/fastdfs
        container_name: tracker
        volumes:
          - './tracker:/var/fdfs'
        command: tracker
        ports:
          - '22122:22122'
          - '22180:8080'
        networks:
          fastdfs:
            ipv4_address: 172.21.0.110
      storage:
        image: luhuiguo/fastdfs
        container_name: storage
        volumes:
          - './storage:/var/fdfs'
        environment:
          TRACKER_SERVER: 'tracker:22122'
        ports:
          - '23000:23000'  ############## 此处重点关注 ##############
          - '23088:8888'   ############## 此处重点关注 ##############
        depends_on:
          - tracker
        command: storage
        networks:
          fastdfs:
            ipv4_address: 172.21.0.120
    
    networks:
      fastdfs:
        name: fastdfs   ############## 避免生成网络的名称包含项目前缀
        driver: bridge
        ipam:
          driver: default
          config:
            - subnet: 172.21.0.0/16
    
  3. 为之前添加的环回网卡添加 docker-compose.yml 中指定的 ip。具体百度 netsh interface ip add address

    netsh interface ip add address "lo0" 172.21.0.110 255.255.0.0
    netsh interface ip add address "lo0" 172.21.0.120 255.255.0.0
    
  4. 测试。文件上传和读取是没问题的。但是只能用来测试,某些情况下会出现问题。


其他

在多 tracker 和多 storage 的情况下,只需要挂载不同的配置文件,设定不同不同的端口就可以避免端口重复,以此就能建立 fdfs 集群了

转载于:https://my.oschina.net/kostark/blog/2646581

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值