Docker小手册

Docker⼩⼿册

  • Docker 清理

  • Docker错误客户排查

  • Docker服务⽆法启动

  • 容器服务停⽌异常

  • ⽹络异常

  • 服务启动失败

 

Docker 清理

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打dangling标签的镜像----虚悬镜像(dangling image)

docker rmi $(docker images -q -f dangling=true)

删除所有镜像

docker rmi $(docker images -q)

删除⽆⽤的数据卷

docker volume rm $(docker volume ls -qf dangling=true)

清理容器和镜像

docker ps -qa | xargs -n 1 docker rm -f 
docker images -qa | xargs -n 1 docker rmi -f
上述引⽤如下来源
https://segmentf ault.com/a/1190000000714347
https://www.calazan.com/docker-cleanup-commands/
https://blog.f undebug.com/2018/01/10/how-to-clean-docker-disk/
 

Docker错误排查

Docker服务无法启动

错误:
shim error: docker-runc not installed on system

解决⽅法(centos7):

sudo ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc

如果还不行可以参考https://stackoverflow.com/questions/42754779/docker-runc-not-installed-on-system

容器服务停止异常

错误:
ERROR: for xxx Cannot start service xxx:b'Container is marked for removal and cannot be started.'
ERROR: Encountered errors while bringing up the project.

出现这种情况是不合理的停⽌容器或者系统负载过⾼,导致docker异常,出现僵死容器或处理⽐较慢,⼀般是因为出现路径被占⽤

1:先尝试删除僵死容器,如果成功则重新启动服务即可
docker rm $(docker ps --all -q -f status=dead)
2:如果出现以下错误,说明该挂载路径被其他进程占⽤导致容器异常
Error response from daemon:driver "overlay" failed to remove root filesystem for xxxxxxxxxxxxxxxx:remove /home/ad/docker/overiay/xxx/merged:device or resource busy
查找占⽤该路径的进程,并停⽌,然后重新启动服务,再启动其他进程
grep docker /proc/*/mountinfo | grep xxx
3: 如果上述仍⽆法解决,请清理所有容器和镜像,并重启docker甚⾄系统后,重新启动

异常描述:

docker一启动就连不上某台机器了,网络不通了

解决⽅法:

⼀般是Docker bridge⽹络⽹段和局域⽹段冲突导致,可以 route 查看
 
请参考 https://yq.aliyun.com/articles/553530
 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/suixinnan/p/15602661.html