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

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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 vb6.0截取当前窗体保存为jpg文件
  • ¥20 苹果手机不使用大疆sdk怎么获取遥控器控制信息或如何接入大疆sdk并且成功上架sdk
  • ¥20 woocommerce 注册按键重定向
  • ¥100 求书法图像文字切割代码
  • ¥15 同一个波形探测距离不同的目标,为什么fft之后得到的频谱图会发生移动,不应该时移不改变幅度谱吗(标签-matlab)(相关搜索:matlab仿真)
  • ¥15 Proteus仿真程序只能执行一次
  • ¥15 语音识别websocket报错
  • ¥15 激光器,引脚问题,无法处理
  • ¥20 求写一份!只提交Mapper映射文件 如:UsersMapper.xml
  • ¥15 CH340C串口模块无法被识别