docker 移除,裁剪,刪除(prune)不使用的映象、容器、卷、網路

我能做的就是儘量向詩靠攏發表於2020-12-20

參考docker prune

提供 prune命令,用於移除不使用的映象、容器、卷、網路。

Prune images

docker image prune移除沒有標籤並且沒有被容器引用的映象,這種映象稱為 dangling(搖晃的) 映象。

示例1:docker image prune

刪除了redis,無標籤且無引用

#docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# docker images
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
nginx                   latest    ae2feff98a0c   4 days ago     133MB
redis                   <none>    ef47f3b6dc11   8 days ago     104MB
centos                  latest    300e315adb2f   12 days ago    209MB
ubuntu                  latest    f643c72bc252   3 weeks ago    72.9MB
docs/docker.github.io   latest    32ed84d97e30   6 months ago   1GB
# docker image prune
# docker images
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
nginx                   latest    ae2feff98a0c   4 days ago     133MB
centos                  latest    300e315adb2f   12 days ago    209MB
ubuntu                  latest    f643c72bc252   3 weeks ago    72.9MB
docs/docker.github.io   latest    32ed84d97e30   6 months ago   1GB

示例2:移除所有沒有容器使用的映象 -a

docker image prune -a

跳過警告提示:--force-f

docker image prune -f

示例3:執行過濾刪除:

超過24小時建立的映象

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

關於過濾器的內容,檢視 docker image prune手冊

移除容器s

當停止容器,不會自動刪除,除非在 docker run 時指定了 --rm。一個停止的容器可寫層仍然會佔用磁碟空間,所以清除它,使用 docker container prune命令。

其他引數類似 docker images prune

移除卷

卷會被一個或多個容器使用,並且佔用主機空間。卷不會自動移除,因為自動移除,會破壞資料。

docker volume prune

其他引數類似 docker images prune

移除網路

Docker 網路不會佔用磁碟空間,但是他們建立了 iptables規則,橋接網路服務,路由entries。清除未被容器使用的網路,這麼做

docker network prune

其他引數類似 docker images prune

移除 Everything

docker system prune 命令是一個快捷方式,用於移除映象,容器,網路。

在 Docker 17.06.0 和更早,卷也是可以移除的。在Docker 17.06.1或更高版本,需要指定引數--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

示例(有了移除卷功能):新增--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

其他引數類似 docker images prune

PS

幫助到你的話,點個贊鼓勵一下吧,歡迎加入置頂部落格的qq技術交流群,僅生活工作當中的技術交流,不搞代課推廣,也代不動。讓我們一起向詩靠攏.

相關文章