广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >Docker System命令分析
  • 724
分享到

Docker System命令分析

2024-04-02 19:04:59 724人浏览 八月长安
摘要

这篇文章主要讲解了“Docker System命令分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker System命令分析”吧!该示例通过pla

这篇文章主要讲解了“Docker System命令分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker System命令分析”吧!

该示例通过play-with-docker.com运行。点击Add new  instance即可创建新的实例,该实例安装了***版的Docker 17.03。使用df命令查看磁盘的初始状态:

$ df -h Filesystem           Size       Used Available Use% Mounted on /dev/mapper/...      10.0G    443.3M      9.6G   4% / tmpfs                60.0G         0     60.0G   0% /dev tmpfs                60.0G         0     60.0G   0% /sys/fs/cgroup /dev/xvda1           49.1G      3.7G     43.3G   8% /etc/resolv.conf /dev/xvda1           49.1G      3.7G     43.3G   8% /etc/hostname /dev/xvda1           49.1G      3.7G     43.3G   8% /etc/hosts shm                  64.0M         0     64.0M   0% /dev/shm /dev/mapper/...      10.0G    443.3M      9.6G   4% /graph/overlay2

可知,在新创建的play-with-docker.com实例,一共有10GB磁盘空间,其中接近500MB已被占用。

接下来编写Dockerfile来创建一个镜像。这个镜像基于Alpine镜像;镜像将写入3个随机的文件,每个文件1GB,文件由dd命令生成;因为这个镜像并没有实际作用,因此CMD设为/bin/true。

FROM alpine RUN dd if=/dev/zero of=1g1.img bs=1G count=1 RUN dd if=/dev/zero of=1g2.img bs=1G count=1 RUN dd if=/dev/zero of=1g3.img bs=1G count=1 CMD /bin/true

运行docker build -t test .即可创建镜像,执行完成后将生成一个3GB的镜像。

$ docker image ls REPOSITORY          TAG                CREATED             SIZE test                latest             38 seconds aGo      3.23GB alpine              latest             5 weeks ago         3.99MB

不难理解,该镜像占用了相应大小的磁盘空间。

$ df -h Filesystem        Size       Used Available Use% Mounted on /dev/mapper/...   10.0G      3.4G      6.5G  34% /

若只写入2个随机文件,则需要修改Dockerfile,删掉一行。为了避免构建镜像时使用缓存,我在dd命令之前添加了一行echo命令。

FROM alpine RUN echo foo RUN dd if=/dev/zero of=1g1.img bs=1G count=1 RUN dd if=/dev/zero of=1g2.img bs=1G count=1 # RUN dd if=/dev/zero of=1g3.img bs=1G count=1 CMD /bin/true

本来以为这样可以节省1GB磁盘空间,然而实际情况更加糟糕!

$ df -h Filesystem        Size       Used Available Use% Mounted on /dev/mapper/...   10.0G      5.4G      4.5G  54% /

旧的Docker镜像一直存在,最终磁盘空间会很快被用完。Docker 1.13引入了docker system  df命令,类似于linux上的df命令,用于查看Docker的磁盘使用情况。

$ docker system df TYPE                TOTAL     ACTIVE    SIZE          RECLAIMABLE Images              3         0         5.373GB       5.373GB (100%) Containers          0         0         0B            0B Local Volumes       0         0         0B            0B

可知,实例上一共有3个Docker镜像:  apline镜像,包含3个1GB随机文件的镜像以及包含2个1GB随机文件的镜像。这些镜像占用了超过5GB磁盘空间。由于我们并没有基于这些镜像运行容器,所以它们都可以被删除,所以可回收的(RECLAIMABLE)磁盘空间为100%。使用docker  run test运行test镜像再查看:

$ docker system df TYPE                TOTAL     ACTIVE    SIZE          RECLAIMABLE Images              3         1         5.373GB       3.225GB (60%) Containers          1         0         0B            0B Local Volumes       0         0         0B            0B

现在情况就不同了,我运行了一个容器,它执行/bin/true之后就很快退出了。

这个容器绑定了test镜像,test镜像被标记为活跃(active)因而不能被删除,这导致可回收的磁盘空间变少了。

现在来清理一下磁盘空间。

Docker提供了docker system prune,可以用于清理dangling镜像(参考What are Docker :  images?)和容器,以及失效的数据卷和网络

$ docker system prune WARNING! This will remove:         - all stopped containers         - all volumes not used by at least one container         - all networks not used by at least one container         - all dangling images Are you sure you want to continue? [y/N] y Deleted Containers: 1cdf866157b4a97e151125af3c2a7f186a59b6f63807e2014ce1a00d68f44e1d Deleted Images: deleted: sha256:f59bb277... deleted: sha256:695b8e70... deleted: sha256:93b1cceb... deleted: sha256:c74d6bcd... deleted: sha256:df8b9bb1... deleted: sha256:dfe8340f... deleted: sha256:ce1ee654... Total reclaimed space: 3.221GB

根据警告信息可知,这个命令会删除所有关闭的容器以及dangling镜像。示例中,含有3个1GB随机文件的镜像的名称被占用了,名称为:,为dangling镜像,因此会被删除。同时,所有的中间镜像也会被删除。这样的话,一共3GB的磁盘空间被回收了!

更进一步,使用-a选项可以做深度清理。这时我们会看到更加严重的WARNING信息:

$ docker system prune -a WARNING! This will remove:         - all stopped containers         - all volumes not used by at least one container         - all networks not used by at least one container         - all images without at least one container associated to them Are you sure you want to continue? [y/N] y Deleted Images: untagged: test:latest deleted: sha256:c515ebfa2... deleted: sha256:07302c011... deleted: sha256:37c0c6474... deleted: sha256:5cc2b6bc4... deleted: sha256:b283b9c35... deleted: sha256:8a8b9bd8b... untagged: alpine:latest untagged: alpine@sha256:58e1a1bb75db1... deleted: sha256:4a415e366... deleted: sha256:23b9c7b43... Total reclaimed space: 2.151GB

这个命令将清理整个系统,并且只会保留真正在使用的镜像,容器,数据卷以及网络,因此需要格外谨慎。比如,我们不能在生产环境中运行prune  -a命令,因为一些备用镜像(用于备份,回滚等)有时候需要用到,如果这些镜像被删除了,则运行容器时需要重新下载。

此时,所有未绑定容器的镜像将会被删除。由于***次prune命令删除了所有容器,因此所有镜像(它们没有绑定任何容器)都会被删除。

$ df -h Filesystem          Size      Used Available Use% Mounted on /dev/mapper/...    10.0G    442.5M      9.6G   4% /

感谢各位的阅读,以上就是“Docker System命令分析”的内容了,经过本文的学习后,相信大家对Docker System命令分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Docker System命令分析

本文链接: https://www.lsjlt.com/news/85955.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Docker System命令分析
    这篇文章主要讲解了“Docker System命令分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker System命令分析”吧!该示例通过pla...
    99+
    2022-10-19
  • docker system命令集合的使用
    目录docker system df docker system prune docker systemc info (docker info) docker system 目前拥有...
    99+
    2022-11-12
  • Docker命令的示例分析
    小编给大家分享一下Docker命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! Docker命令   1.命令...
    99+
    2023-06-07
  • 常用的Docker命令及示例汇总分析
    目录1、容器生命周期管理(1)docker run(2)start/stop/restart(3)docker kill(4)docker rm(5)pause/unpause(6)...
    99+
    2022-11-12
  • Linux命令和命令行的示例分析
    这篇文章将为大家详细讲解有关Linux命令和命令行的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是命令我们通常所说的Linux命令行是运行在终端(terminal)的shell (阅读Lin...
    99+
    2023-06-13
  • docker命令大全
    # docker命令 systemctl enable docker       ***设置开机启动docker*** systemctl disable docker      ***设置开机不启动docker:*** systemctl...
    99+
    2023-08-31
    docker 容器 运维 php
  • nmap命令实例分析
    这篇文章给大家介绍nmap命令实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Nmap是一款免费、开源的网络发现和侦察工具。Nmap可以扫描网络中的处于活动状态的主机、开放端口、操作系统版本和服务检测以及执行隐匿...
    99+
    2023-06-28
  • docker的卸载命令
    这篇文章主要讲解了“docker的卸载命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker的卸载命令”吧!yum list installed | grep dockersudo ...
    99+
    2023-06-04
  • docker-3 基础命令
    创建镜像创建镜像的方法有三种:基于已有的容器创建基于本地模板导入基于dockerfile基于已有的容器创建主要使用docker commit 命令,命令格式:docker commit [OPTIONS] CONTAINER [REPOSI...
    99+
    2023-01-31
    命令 基础 docker
  • docker search 命令详解
    【原文链接】docker search 命令详解 文章目录 一、docker search 命令选项二、docker search 使用实例2.1 通过指定镜像名搜索2.2 搜索结果不进行截断显示2.3 设置搜索结果只显示10个2....
    99+
    2023-08-18
    docker linux 服务器
  • mysql 锁分析相关命令
    1.服务器级别的锁等待 可以通过show (full) processlist看到等待锁的线程id,但是无法知道究竟哪个线程持有锁 可以通过mysqladmin debug 相关...
    99+
    2022-10-18
  • MySQL命令的示例分析
    小编给大家分享一下MySQL命令的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL的基本操作可以包括两个方面:M...
    99+
    2022-10-18
  • pstack命令的使用分析
    pstack命令的使用分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。pstack命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 ...
    99+
    2023-06-06
  • linux命令的示例分析
    这篇文章主要为大家展示了“linux命令的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux命令的示例分析”这篇文章吧。概述:用户使用shell跟内核交互,Linux中有很多命令,...
    99+
    2023-06-12
  • CMD命令中目录类命令的示例分析
    这篇文章给大家分享的是有关CMD命令中目录类命令的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。(一)MD——建立子目录 1.功能:创建新的子目录2.类型:内部命令3.格式:MD[盘符:][路径名]〈子目...
    99+
    2023-06-08
  • 如何分析Linux命令中的tar打包命令
    如何分析Linux命令中的tar打包命令,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux中解压缩命令非常多,每个命令的使用方法略有不同,下面讲解一下Li...
    99+
    2023-06-28
  • 怎么在Docker中使用Docker命令
    这篇文章主要介绍“怎么在Docker中使用Docker命令”,在日常操作中,相信很多人在怎么在Docker中使用Docker命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Docker中使用Docke...
    99+
    2023-06-15
  • Linux命令行的示例分析
    这篇文章主要介绍了Linux命令行的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. Google让我们从一个巨头开始吧:Bing!好吧,只是开个玩笑,事实上应该是...
    99+
    2023-06-16
  • MySQL常用性能分析命令
    show version(); show engines; show variables like "innodb_buffer_pool_size";#缓存池大小 show variables like "innodb_io"; show...
    99+
    2019-02-28
    MySQL常用性能分析命令
  • node.js命令行的示例分析
    这篇文章主要介绍了node.js命令行的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。process (进程)process对象是一...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作