请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

docker - 使用Jenkins和Docker的设备上没有空间-如何正确清理

[复制链接]
菜鸟教程小白 发表于 2022-8-3 10:10:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我们正在Ubuntu 16.04.1服务器上运行Jenkins(版本2.60.1)。我们最近遇到的问题之一是,我们通常会收到错误“设备上没有剩余空间”。

我了解使用Docker时需要进行严格的清理过程,因为这些文件会遗留下来并占用不必要的空间。

我们正在使用 CloudBees Docker Build and Publish插件来处理构建并推送到AWS ECS。我考虑过删除所有未使用的图像。问题是,如果我(通过SSH)登录到Jenkins实例并尝试运行它给出的docker命令-“无法连接到Docker守护程序。docker守护程序是否在此主机上运行?”

我想我需要在Jenkins环境或插件的一部分中执行此操作吗?

有人以前处理过这个问题或有什么建议吗? -我真的很感激。



Best Answer-推荐答案


Docker <1.13

对于早于1.13的Docker,您可以执行以下操作清理设备上的某些空间:

docker ps -a | grep -i 'exited' | awk '{print $1}' | xargs docker rm > /dev/null 2>&1 &
docker images -a | grep "<none>" | awk '{print $3}' | xargs docker rmi > /dev/null 2>&1 &

或者,您可以尝试运行以下docker命令:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

它将清理旧的孤立容器,并删除带有<none>标签的图像。我在我的CI服务器之一上使用了这两个公式,并且工作正常。在此之前,我面临着与您的问题类似的问题(设备上没有剩余空间)。

清理孤立卷
docker volume rm $(docker volume ls -qf dangling=true)
docker volume ls -qf dangling=true | xargs -r docker volume rm

docker > = 1.13

Docker 1.13引入了docker system prune命令(https://docs.docker.com/engine/reference/commandline/system_prune/)。或者,您可以运行:
  • docker image prune
  • docker volume prune
  • docker container prune

  • 您可以将这些命令作为Jenkins管道的一部分运行。在我从事的一个项目中,我们在发布过程中构建新的Docker镜像后运行清理。也尝试尝试修复“无法连接到Docker守护程序。Docker守护程序是否在此主机上运行?”问题。

    关于docker - 使用Jenkins和Docker的设备上没有空间-如何正确清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45128781/

    回复

    使用道具 举报

    懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关注0

    粉丝2

    帖子830918

    发布主题
    阅读排行 更多
    广告位

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap