成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Docker prune命令定時清理磁盤數據

開源
隨著時間的推移,Docker容器和鏡像占用的磁盤空間可能會變得非常大,尤其是在生產環境中。為了釋放磁盤空間,本文將探討如何刪除Docker相關的不用的數據。

Docker是一個開放源代碼軟件,它允許開發人員將應用程序打包成“容器”,并在不同的操作系統和環境中快速、輕松地部署。這種靈活性使得Docker成為了開發人員的首選工具之一。然而,隨著時間的推移,Docker容器和鏡像占用的磁盤空間可能會變得非常大,尤其是在生產環境中。為了釋放磁盤空間,本文將探討如何刪除Docker相關的不用的數據。

先看下docker system命令

docker system 目前擁有四個子命令,分別是:

docker system df
docker system events
docker system info
docker system prune

docker system 其中最重要的一個命令就是 docker system prune 命令,清理沒有使用的數據,包括鏡像數據,已經停止的容器。

查看 docker system 幫助:

[root@localhost ~]# docker system --help
Usage:  docker system COMMAND
Manage Docker
Options:
      --help   Print usage
Commands:
  df          Show docker disk usage
  events      Get real time events from the server
  info        Display system-wide information
  prune       Remove unused data
Run 'docker system COMMAND --help' for more information on a command.

docker system df

提供Docker整體磁盤使用率的概況,包括鏡像、容器和(本地)volume。所以我們現在隨時都可以查看Docker使用了多少資源。

[root@localhost ~]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              10                  6                   2.652GB             1.953GB (73%)
Containers          6                   6                   6.922MB             0B (0%)
Local Volumes       0                   0                   0B                  0B

docker system prune

如果之前的命令展示出 docker 已經占用了太多空間,我們會開始清理。有一個包辦一切的命令:

[root@localhost ~]# docker system prune
WARNING! This will remove:
        - all stopped containers # 清理停止的容器
        - all networks not used by at least one container #清理沒有使用的網絡
        - all dangling images #清理廢棄的鏡像
        - all build cache #清理構建緩存
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

根據警告信息可知,這個命令會刪除所有關閉的容器以及dangling鏡像。示例中,含有3個1GB隨機文件的鏡像的名稱被占用了,名稱為:,為dangling鏡像,因此會被刪除。同時,所有的中間鏡像也會被刪除。

更進一步,使用-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命令刪除了所有容器,因此所有鏡像(它們沒有綁定任何容器)都會被刪除。

如何清理none對象

Docker 采用保守的方法來清理未使用的對象(通常稱為“垃圾回收”),例如鏡像、容器、卷和網絡。

除非明確要求 Docker 這樣做,否則通常不會刪除這些對象。這可能會導致 Docker 使用額外的磁盤空間。

對于每種類型的對象,Docker 都提供了一條 prune 命令。

另外,可以使用 docker system prune一次清理多種類型的對象。本主題講解如何使用這些 prune 修剪命令

修剪鏡像

清理none鏡像(虛懸鏡像)

命令: docker image prune

默認情況下,docker image prune 命令只會清理 虛無鏡像(沒被標記且沒被其它任何鏡像引用的鏡像):

root@instance-o70no2nw:~# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

清理無容器使用的鏡像

命令: docker image prune -a

默認情況下,系統會提示是否繼續。要繞過提示,請使用 -f 或 --force 標志。

可以使用 --filter 標志使用過濾表達式來限制修剪哪些鏡像。例如,只考慮 24 小時前創建的鏡像:

$ docker image prune -a --filter "until=24h"

修剪容器

停止容器后不會自動刪除這個容器,除非在啟動容器的時候指定了 –rm 標志。使用 docker ps -a 命令查看 Docker 主機上包含停止的容器在內的所有容器。你可能會對存在這么多容器感到驚訝,尤其是在開發環境。停止狀態的容器的可寫層仍然占用磁盤空間。要清理掉這些,可以使用 docker container prune 命令:

$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y

默認情況下,系統會提示是否繼續。要繞過提示,請使用 -f 或 --force 標志。

默認情況下,所有停止狀態的容器會被刪除。可以使用 --filter 標志來限制范圍。例如,下面的命令只會刪除 24 小時之前創建的停止狀態的容器。

修剪卷

卷可以被一個或多個容器使用,并占用 Docker 主機上的空間。卷永遠不會被自動刪除,因為這么做會破壞數據。

$ docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y

修剪網絡

Docker 網絡不會占用太多磁盤空間,但是它們會創建 iptables 規則,橋接網絡設備和路由表條目。要清理這些東西,可以使用 docker network prune 來清理沒有被容器未使用的網絡。

$ docker network prune

修剪一切

docker system prune 命令是修剪鏡像、容器和網絡的快捷方式。在 Docker 17.06.0 及以前版本中,還好修剪卷。在 Docker 17.06.1 及更高版本中必須為 docker system prune 命令明確指定 --volumes 標志才會修剪卷。

$ docker system prune
WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

如果使用 Docker 17.06.1 或更高版本,同時也想修剪卷,使用 --volumes 標志。

$ docker system prune --volumes
WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all volumes not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

通常我們定時任務刪除即可

比如我這邊場景是鏡像占用磁盤空間很大,那我定時個刪除鏡像的任務。

每天凌晨1點,刪除72小時之外所有沒有被使用的鏡像:


[root@develop-server]# crontab -e
0 1 * * * docker image prune -a --force --filter "until=72h"

docker system info (docker info)

這個命令的縮寫docker info相信大家都很熟悉:

[root@localhost ~]# docker system info
Containers: 6
 Running: 6
 Paused: 0
 Stopped: 0
Images: 49
Server Version: 17.06.2-ce
Storage Driver: overlay
 Backing Filesystem: xfs
 Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.26.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.21GiB
Name: localhost.localdomain
ID: YTL2:6RWX:IZK6:X4XC:XKMO:WVXD:LXPR:E5GN:GEJB:WIUX:L5YH:PDFB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 http://9zkjjecg.mirror.aliyuncs.com/
 https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
責任編輯:趙寧寧 來源: 微技術之家
相關推薦

2025-05-08 09:05:00

Shell腳本磁盤日志

2024-11-12 14:48:10

2009-08-03 12:21:03

linux at命令linux at命令詳定時關機

2023-12-21 13:02:25

Linux系統Ubuntu

2009-08-03 12:15:29

linux at命令linux at命令詳定時啟動程序

2011-08-22 13:27:55

Ubuntu磁盤清理

2018-01-11 15:36:23

命令磁盤空間Docker

2019-09-16 08:28:17

Mysql數據庫binlog

2022-11-06 19:34:53

UbuntuLinux

2019-09-17 08:00:24

DockerCompose命令

2021-05-20 08:07:48

磁盤簽名Wipefs

2012-05-08 11:11:43

Linuxcrontab命令

2009-10-22 10:59:29

linux磁盤命令

2023-08-15 16:20:42

Pandas數據分析

2009-08-03 12:26:00

Linux at命令linux at命令詳Win2000

2009-10-22 11:36:31

linux磁盤管理

2021-03-25 16:27:35

Docker磁盤容器

2021-08-04 12:09:04

Linuxdf命令

2009-10-22 10:50:47

linux磁盤管理命令

2009-10-22 10:19:57

linux磁盤命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产综合在线视频 | 一区二区国产在线观看 | 久久高清精品 | 成人av鲁丝片一区二区小说 | 午夜资源 | 黄色香蕉视频在线观看 | 日韩国产一区二区 | 亚洲电影免费 | 狠狠干天天干 | 亚洲成人久久久 | 日日夜夜精品免费视频 | 视频一二三区 | 亚洲精品久久久一区二区三区 | 精品久久久久国产 | 欧美日韩1区2区 | 日日精品 | 国产精品91久久久久久 | 操一草 | 视频一区二区中文字幕日韩 | 亚洲精品第一页 | 精品国产一区二区三区久久 | 国产成人精品一区二区三区在线观看 | 国产精品视频网站 | 久久精品一区 | 亚洲一区二区 | 精品国产女人 | 欧美日一区二区 | 中文字幕一区二区三区四区五区 | 狠狠操在线 | 亚洲精品白浆高清久久久久久 | 国产在线精品免费 | 黄网站涩免费蜜桃网站 | 不卡一区 | 成人午夜激情 | 欧美日韩视频一区二区 | 精品福利在线 | 天天射天天干 | 人人射人人 | 免费一区二区 | 成人高清在线视频 | 欧美亚洲国产一区二区三区 |