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

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日

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)