Skip to content

Docker容器端口映射问题

  • 报错信息

    Ports are not available: exposing port TCP 0.0.0.0:63791 -> 0.0.0.0:0: listen tcp 0.0.0.0:63791: bind: An attempt was made to access a socket in a way forbidden by its access permissions
  • 知识点

    • Docker端口映射:Docker允许用户将内部的端口映射到宿主机的端口,从而实现访问容器内运行的服务
    • Windows NAT服务:Windows NAT(网络地址转换)服务,也称为WinNAT,是Windows中负责管理端口映射和网络路由的组件,在Windows上,Docker容器的网络通信依赖于WinNAT服务来进行端口映射
  • 问题出现的原因以及解决办法

    • 原因一:宿主机端口被占用。解决方式:换个端口或者终止正在使用端口的进程

      shell
      netstat -ano | findstr 6379
      shell
      taskkill -PID 进程ID -F
    • 原因二:WinNAT服务出现问题或配置不当。解决方式:重启WinNAT服务,重启后再执行docker run就没问题了

      shell
      // 管理员身份运行cmd!!!
      
      net stop winnat  // 停止WinNAT服务
      net start winnat // 重新启动WinNAT服务

MIT版权,未经许可禁止任何形式的转载