• windows docker 容器启动报错:Ports are not available


    docker 启动容器报错: (HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:6379: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

    问题排查

    • 检查端口是否被其它程序占用:netstat -ano | findstr 6379,如果有需要自己处理一下,关掉冲突程序或改端口

    • 如果本地端口没有被占用,检查是否是与hyper-v保留端口冲突了
      查看hyper-v启动后的保留端口范围
      netsh interface ipv4 show excludedportrange protocol=tcp

      协议 tcp 端口排除范围 
      
      开始端口    结束端口
      ----------    --------
            1026        1125
            1226        1325
            1326        1425
            1426        1525
            1526        1625
            2180        2279
            6220        6420
      ... 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12

      结果显示6220~6420端口被保留,其中包括了redis的6379端口,需要修改修改hyper-v保留端口,排除6379

    修改hyper-v保留端口

    1. 以管理员身份运行 powershell
    2. 停止Windows NAT 驱动程序
      net stop winnat
    3. 使用以下命令永久排除6379作为保留端口
      netsh int ipv4 add excludedportrange protocol=tcp startport=6379 numberofports=1 store=persistent
      提示:关键在于store=persistent参数表示持久化信息
      上面的命令可以通过修改numberofports参数保留startport开始的多个端口
    4. 开启Windows NAT 驱动程序
      net start winnat
    5. 再次运行 netsh interface ipv4 show excludedportrange protocol=tcp 命令可以看到6379端口已被排除(带有*号标记)
      管理员权限运行
      协议 tcp 端口排除范围
      
      开始端口    结束端口
      ----------    --------
              80          80
            2379        2379     *
            2380        2380     *
            3306        3306     *
            5357        5357
            6379        6379     *
           50000       50059     *
      
      * - 管理的端口排除。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13

    其他端口号被占用同理,上面我排除了mysql、redis、etcd的端口,常用的都可以加上


    参考资料:

    • https://www.cnblogs.com/codeninja/p/14759920.html
    • https://www.cnblogs.com/uncmd/p/16056993.html
  • 相关阅读:
    一文说清如何使用keepalive实现页面缓存-(已上线)
    数据结构——经典链表OJ(二)
    【夜读】自我管理的8个小习惯,养成受用一生
    亿万级别Kafka演进之路:可靠性+事务+消息中间件+源码+日志
    php代理刷访问量(附源码)
    基站天线交叉极化比测量的不确定度评定
    仅靠阿里 P9 分享的 Redis 工作手册,拿到 60W 年薪 Offer
    简单讲解冒泡排序算法
    ARM64汇编基础
    QGroupBox 类(组框)
  • 原文地址:https://blog.csdn.net/qq_33398607/article/details/132731505