Docker 踩坑之一:Error response from daemon: write *** : no space left on device

几个月前aliyun推出了容器服务,趁着折腾自动化构建发布玩了一段时间Docker,一直都没遇到什么问题。直到最近几天,发现服务不怎么听话,明明设置了启动两个容器,却总是只出现一个,纳闷了,难道我配置写错了?!再三检查没发现问题,于是使用界面操作改变容器数量为2,更新后发现还是实际只生效了一个。。。

         

好吧,莫不是我把服务器折腾坏了,呵呵~ 

连上ssh进入未启动容器的那台的宿主机上看看吧(aliyun的容器服务购买时需选择宿主机数量及配置,当时买的两台宿主机使用),既然配置和界面已经没有作用了,就使用命令启动个服务吧。

# docker pull registry-internal.cn-hangzhou.aliyuncs.com/my-namespace/my-image:1.0.0

然后提示了个找不到镜像 Error: image  my-namespace/my-image:1.0.0 not found 

我已经怀疑我玩的假容器服务了,我的镜像明明在仓库里。然后把命令copy到另一台宿主机上再次pull,结果成功,呵呵~想想估计那台访问到的镜像仓库节点没有同步成功吧 !

那我下载个别的镜像试试,然后出现了新提示 no space left on device 。。。

看到这我第一反应就是磁盘空间不足了么?哦,可能我买的太小了,pull的镜像又太多了,那我删掉几个吧,然后

# docker rmi c7253c6cdfcd
Error response from daemon: write /var/lib/docker/image/overlay/.tmp-repositories.json240511815: no space left on device

什么鬼,我删除镜像还不让我删除了?难道整个docker的命令都被我搞坏了?我试试别的命令先,stop能成功,start就又出现同样的提示了。。

好吧,我重启下宿主机试试,结果呵呵~

既然这样就重置一下宿主机吧,反正我上面都是些测试容器。开开心心去找节点重置,结果意想不到。。节点消失了

估计这个no space left on device问题不解掉,就只能从ecs那里删掉宿主机了,索性解决掉好了。

# df -h

看了下,磁盘空间只占用了一点点,不可能是磁盘用满,排除一切可能,再加上Google看了下别人遇到这种情况的解决方法,最终将 /var/log 中的较大又无用的日志删除(du -sh /var/log可直观查看文件大小),再试着 docker start 其中被我停掉起不来的容器,不出意外成功了。接下来就是将不用的镜像都顺利删掉了。

 

可通过cron定时清理不需要的镜像,以下是删除仓库名包含dev_img的镜像

0 1 * * *  docker rmi $(docker images | grep "dev_img" | awk '{print $3}') > /dev/null 2>&1

  

转载于:https://www.cnblogs.com/hanyingchun/p/6514251.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值