老大别再贪吃了 2023-01-29 22:23 采纳率: 75%
浏览 52
已结题

docker容器启动问题报端口占用

docker启动mysql容器报错.
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql-master (cf828617afa45b50af0352599a07c0f816d57708b62d6602317ffe4231d04f2f): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.

想问一下为什么我关闭了所有未启动的容器和运行容器,重启之后再运行还是会报端口占用? 但是我查了端口明明没有占用啊,然后每次我run一遍, 虽然报错了,但是docker ps -a中就会多出一个历史容器(不是正运行的), 这又是为什么, 不是端口被占用了吗? 这也会run成功?

求解答! 感谢!

img

  • 写回答

4条回答 默认 最新

  • bluetata 云计算领域优质创作者 2023-01-29 23:56
    关注

    你不要慌,你现在看我下面的讲解就明白了
    你首先要知道 docker ps 和 docker ps -a的区别,不要看百度那些瞎几X抄来超区的, docker ps -a 包括活着的也包括异常失败的,所以你启动失败的docker 在这里也会有显示,你可以认为 docker ps -a是查看所以历史docker状态,包括正在运行的, docker ps 只是查看当前正在运行的


    所以你现在问题中的描述是没问题的,你docker没有启动起来, docker ps 是查看不到当前运行的docker的,之后用docker ps -a可以看到失败的

    下面给你几个常用的清理命令

    # 杀死所有正在运行的容器:
    docker kill $(docker ps -a -q)
    
    # 删除所有已经停止的容器:
    docker rm $(docker ps -a -q)
    
    # 删除无用的镜像。 prune : 修剪;削减;修剪树枝;打杈;裁减;精简 :
    docker image prune
    
    # 删除所有未打标签的镜像。 dangling : 悬挂;悬摆 :
    docker rmi $(docker images -q -f dangling=true)
    
    # 删除所有镜像:
    docker rmi $(docker images -q)
    
    # 强制删除无法删除的镜像:
    docker rmi -f <IMAGE_ID>
    docker rmi -f $(docker images -q)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • julien_qiao 2023-01-29 23:03
    关注

    使用docker rm -f 启动失败容器ID 删除完后重新启动

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-01-31 00:21
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
  • 老大别再贪吃了 2023-01-31 22:52
    关注
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月8日
  • 已采纳回答 1月31日
  • 创建了问题 1月29日

悬赏问题

  • ¥20 有人能代写linux应用吗?有偿,酬金可商量,具体要求联系我
  • ¥15 神经网络建立应力预测模型
  • ¥20 反编译一款APP手游,解密出lua脚本。
  • ¥15 改一下,代码,让代码符合要求
  • ¥15 报错问题,只有两个错误,如图片所示,i多次初始化
  • ¥15 matlab runtime 如何收费
  • ¥15 Tpad api账户 api口令
  • ¥30 ppt进度条制作,vba语言
  • ¥15 生信simpleaffy包下载
  • ¥15 在二层网络中,掩码存在包含关系即可通信