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

这篇具有很好参考价值的文章主要介绍了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
    ... 
    

    结果显示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     *
    
    * - 管理的端口排除。
    

其他端口号被占用同理,上面我排除了mysql、redis、etcd的端口,常用的都可以加上文章来源地址https://www.toymoban.com/news/detail-700144.html


参考资料:

  • https://www.cnblogs.com/codeninja/p/14759920.html
  • https://www.cnblogs.com/uncmd/p/16056993.html

到了这里,关于windows docker 容器启动报错:Ports are not available的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3307 -> 0.0.0.0:0:

    windows  docker容器启动MySQL时报: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3307 - 0.0.0.0:0: listen tcp 0.0.0.0:3307: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 解决办法: 管理员权限运行cmd 执行这两行命令,说白了就是重启一下 winnat 到此

    2024年04月23日
    浏览(37)
  • 【docker】通过docker ps 查看容器运行状态发现没有端口号,解决PORTS没有端口号问题

    目录 1、遇到问题  2、添加端口号  3、杀掉正在运行的容器

    2024年02月13日
    浏览(52)
  • Docker 启动容器遇到 operation not permitted 错误的解决

    问题 在 Linux 启动容器报错 operation not permitted ,容器运行失败 (但在 Mac 上运行正常,注 Mac 上的 Docker 版本不同于 Linux) 报错示例: 原因 与 Linux 的权限安全保护相关 https://bugzilla.redhat.com/show_bug.cgi?id=1764152 https://blog.twtnn.com/2021/09/docker-containeroperation-not-permitted.html ...Linux為了

    2024年02月11日
    浏览(53)
  • docker启动容器失败,然后查看日志,docker logs查看容器出现报错:

    docker 启动 容器失败,然后 docker logs 查看容器出现报错: 在网上看到的 解决方案: 找到你日志文件目录: 删除或者备份一下就就可以看到日志了

    2024年02月03日
    浏览(41)
  • Docker 启动容器报错:cannot allocate memory: unknown

    使用命令启动容器: docker-compose up -d nginx 报错。 参考:Docker 之 cannot allocate memory 从错误的提示分析,推测是:cgroup、mkdir XXX : cannot allocate momory 将进行搜索,确实查到了很多相似(几乎一样)的现象,以及解决思路。 发生这个问题的大概原因: docker 默认使用

    2024年02月09日
    浏览(44)
  • 解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

    1.修改redis.conf配置文件参数 daemonize 为 no : 由于创建容器实例时,会进行容器数据卷挂载,因此可以直接在外部宿主机里面修改,docker会自动同步该文件到redis容器对应目录里面 2.删除之前创建的redis容器实例 3.复杂使用run命令,再次重新创建redis容器实例。会进行容器数据卷

    2024年02月20日
    浏览(48)
  • Docker容器 - 启动报错:No space left on device

    目录 运行 报错 解决问题 具体操作 重新运行 docker: Error response from daemon: mkdir /var/lib/docker/overlay2/82f185b561334827b34f78dd05dfd83b30b16e710fb27f88c09262bd94dd2fbc-init: no space left on device .  原因是磁盘空间不足,此时创建数据卷的时候docker会报错No space left on device。 首先来看一下磁盘的使用量

    2024年02月11日
    浏览(65)
  • 【云原生】解决在Windows上在docker内启动docker报Operation not permitted

    环境: Windows 10 Docker Desktop 4.16 项目需要构建一个 all-in-one 容器,在容器内将项目所有其他容器启动。 例如 postgresql , redis 等组件 这些组件全部配置在 docker-compose.yml 中 docker-compose.yml 位于all-in-one容器内 现在我们用一个命令先启动 all-in-one 容器,该容器挂载了 docker.sock 用于

    2023年04月26日
    浏览(34)
  • Centos升级docker后启动容器报错“unknown or invalid runtime name”

    操作系统为centos docker原来的版本为1.31.1,升级后为20 结尾有升级docker的教程 听说图片能凑字数,就截图贴了 重装docker之后试试这个,折腾一上午 https://blog.csdn.net/weixin_43448598/article/details/109412104 我是分割线 加入后面出现无法强制删除镜像文件时,或者报错(无法创建容器)

    2024年02月07日
    浏览(50)
  • windows wsl2 docker+k8s+cuda容器无法启动问题解决

    docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #1: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as \\\'legacy\\\' nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overl

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包