当前位置:   article > 正文

FAQ:Docker常见问题及优化_docker system prune --all

docker system prune --all

1、docker清理多余的镜像和stop的容器 

我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:

docker image prune -a

它支持的子命令有:

  • -a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;
  • -f, --force:强制删除镜像文件,无需弹出提示确认;

另外,执行完 docker image prune 命令后,还是告诉我们释放了多少存储空间!

补充:

docker container prune # 删除所有退出状态的容器
docker volume prune # 删除未被使用的数据卷
docker image prune # 删除 dangling 或所有未被使用的镜像

docker system prune --all --force --volumns   #这次不仅会删除数据卷,而且连确认的过程都没有了!

使用 --all 参数后会删除所有未被引用的镜像而不仅仅是 dangling 镜像

删除所有容器:docker container rm $(docker container ls -a -q)
删除所有镜像:docker image rm $(docker image ls -a -q)
删除所有数据卷:docker volume rm $(docker volume ls -q)
删除所有network:docker network rm $(docker network ls -q)

查看僵尸目录:docker volume ls -qf dangling=true

知道怎么查看,删除就简单了:docker volume rm $(docker volume ls -qf dangling=true)

2、dokcer常用配置

docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json

vi /etc/docker/daemon.json

{"registry-mirrors": ["http://cfb55545.m.daocloud.io"],"log-opts":{"max-size":"10M","max-file":"5"}}

或者
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

具体的操作是:

  • 1.设置vi /etc/docker/daemon.json 文件.
  • 2.创建并修改完daemon.json文件后,需要让这个文件生效:  sudo systemctl daemon-reload
  • 3. 重启docker服务: sudo systemctl restart docker.service
  • 4.查看状态: sudo systemctl status docker -l
  • 5.查看服务:  sudo docker info

具体的操作是:cd /var/lib/docker/containers/ .. /hostconfig.json

 

docker- daemon.json各配置详解:

  1. {
  2. "allow-nondistributable-artifacts": [], #不对外分发的产品提交的registry仓库
  3. “api -cors-header”: "" , #在引擎API中设置CORS标头
  4. “authorization - plugins”:[], #要加载的授权插件
  5. “bridge”: "" , #将容器附加到网桥
  6. “cgroup -parent”: "" , #为所有容器设置父cgroup
  7. “cluster -store”: "" , #分布式存储后端的URL
  8. “cluster -store- opts”:{}, #设置集群存储选项(默认map [])
  9. “cluster -advertise”: "" , #要通告的地址或接口名称
  10. “data -root”: " /var/lib/docker " , #Docker运行时使用的根路径,默认/var/lib/ docker
  11. “debug”: true , #启用调试模式,启用后,可以看到很多的启动信息。默认false
  12. default -gateway”: "" , #容器默认网关IPv4地址
  13. default -gateway-v6”: "" , #容器默认网关IPv6地址
  14. default - runtime”:“runc”, #容器的默认OCI运行时(默认为“ runc”)
  15. default - ulimits”:{}, #容器的默认ulimit(默认[])
  16. “dns”: [], #设定容器DNS的地址,在容器的 /etc/ resolv.conf文件中可查看。
  17. “dns -opts”: [], #容器 /etc/ resolv.conf 文件,其他设置
  18. “dns - search”: [], #设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的 主机时,DNS不仅搜索host,还会搜索host.example.com 。 注意:如果不设置, Docker 会默认用主机上的 /etc/ resolv.conf 来配置容器。
  19. “exec - opts”: [], #运行时执行选项
  20. “exec -root”: "" , #执行状态文件的根目录(默认为’/var/run/ docker‘)
  21. “fixed -cidr”: "" , #固定IP的IPv4子网
  22. “fixed -cidr-v6”: "" , #固定IP的IPv6子网
  23. “group”: “”, #UNIX套接字的组(默认为“docker”)
  24. "graph":"/var/lib/docker", #已废弃,使用data-root代替,查看docker版本
  25. “hosts”: [], #设置容器hosts
  26. “icc”: false , #启用容器间通信(默认为true)
  27. “insecure-registries”: [“ 120.123 . 122.123 : 12312 ”], #设置私有仓库地址可以设为http
  28. “ip”:“ 0.0 . 0.0 ”, #绑定容器端口时的默认IP(默认0. 0.0 . 0 )
  29. “iptables”: false , #启用iptables规则添加(默认为true)
  30. “ipv6”: false , #启用IPv6网络
  31. “ip -forward”: false , #默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看
  32. “ip -masq”: false , #启用IP伪装(默认为true)
  33. “labels”:[“nodeName =node- 121 ”], #docker主机的标签,很实用的功能,例如定义:–label nodeName=host- 121
  34. “live -restore”: true , #在容器仍在运行时启用docker的实时还原
  35. “log -driver”: "" , #容器日志的默认驱动程序(默认为“ json- file ”)
  36. “log -level”: "" , #设置日志记录级别(“调试”,“信息”,“警告”,“错误”,“致命”)(默认为“信息”)
  37. “max -concurrent-downloads”: 3 , #设置每个请求的最大并发下载量(默认为3)
  38. “max -concurrent-uploads”: 5 , #设置每次推送的最大同时上传数(默认为5)
  39. “mtu”: 0 , #设置容器网络MTU
  40. “oom -score-adjust”:- 500 , #设置守护程序的oom_score_adj(默认值为- 500 )
  41. “pidfile”: “”, #Docker守护进程的PID文件
  42. “raw -logs”: false , #原始日志、全时间戳机制
  43. “registry -mirrors”: [“https: // 192.168.2.23:89”], #设置镜像加速地址
  44. “selinux -enabled”: false , #默认 false ,启用selinux支持
  45. “storage -driver”: "" , #要使用的存储驱动程序
  46. “swarm -default-advertise-addr”: "" , #设置默认地址或群集广告地址的接口
  47. “tls”: true , #默认 false , 启动TLS认证开关
  48. “tlscacert”: “”, #默认 ~/.docker/ ca.pem,通过CA认证过的的certificate文件路径
  49. “tlscert”: “”, #默认 ~/.docker/ cert.pem ,TLS的certificate文件路径
  50. “tlskey”: “”, #默认 ~/.docker/ key.pem,TLS的key文件路径
  51. “tlsverify”:true , #默认false,使用TLS并做后台进程与客户端通讯的验证
  52. “userland -proxy”:false , #使用userland代理进行环回流量(默认为true)
  53. “userns -remap”: "" , #用户名称空间的用户/ 组设置
  54. “bip”:“ 192.168 . 88.0 / 22 ”, #指定网桥IP
  55. “storage - opts”: {
  56. “overlay2.override_kernel_check = true ”,
  57. “overlay2.size = 15G”
  58. }, #存储驱动程序选项
  59. "labels":["nodeName=node-121"], #docker主机的标签
  60. "live-restore": true,
  61. "log-driver":"",
  62. "log-level":"",
  63. "log-opts": {},
  64. "max-concurrent-downloads":3,
  65. "max-concurrent-uploads":5,
  66. "mtu": 0,
  67. "oom-score-adjust":-500,
  68. “log - opts”: {
  69. “max - file ”: “ 3 ”,
  70. “max - size”: “10m”,
  71. }, #容器默认日志驱动程序选项
  72. “iptables”: false #启用iptables规则添加(默认为true)
  73. }

 

FAQ1: docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp

Docker容器做端口映射报错:

docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.

解决方法:docker服务启动时定义的自定义链DOCKER被清除
重启即可systemctl restart docker

FAQ2: Docker报错:rm: cannot remove ‘/var/lib/docker/containers‘’: Device or resource busy

#删除提示Device or resource busy,无法删除
rm -rf /var/lib/docker
rm: cannot remove ‘/var/lib/docker/containers/b81511d1415**9f968d/mounts/shm’: Device or resource busy

在删除/var/lib/docker文件夹时提示Device or resource busy,无法删除,报错原因是网络共享挂载的存储目录无法使用rm -rf 清空,确实需要删除本地挂载点,可以先卸载挂载,然后再删除本地的挂载目录。

#先卸载
[root@k8s docker]# umount /var/lib/docker/containers/b81511d1415401ec999e**0f6119f4d82edd22989f968d/mounts/shm
#卸载后能够成功删除
[root@k8s docker]# rm -rf /var/lib/containers
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/858588
推荐阅读
相关标签
  

闽ICP备14008679号