Docker | 使用dockerfile生成映象,清理docker空間

2022-10-13 18:00:11

dockerfile生成映象並掛載資料卷

編寫dockerfile檔案

  1. 建立dockerfile01 檔案
# 基礎映象
FROM centos

VOLUME ["volume01", "volume02"]

CMD echo "-----end----"

  1. docker build 構建映象
docker build -f ./dockerfile01 -t xiao-centos .

  1. 啟動映象
docker run -it 映象ID /bin/bash

可以看到生成映象時自動掛載的,資料卷目錄

以上dockerfile方式屬於匿名掛載資料卷

清理docker使用空間

我個人使用的是單核2G的雲伺服器,用了快三年了,記憶體、cpu嚴重吃緊,所以就嘗試了清理docker使用空間,主要是刪除未使用過的映象、容器、資料卷、網路命令,具體如下:

官方檔案連結 https://docs.docker.com/config/pruning/

  • 執行如下可以檢視 Docker 的磁碟使用情況(類似於 Linux 上的 df 命令)
docker system df
  • 刪除所有未使用過的映象
docker image prune -a
  • 刪除所有停止的容器
docker container prune
docker rm -f $(docker ps -aq)
  • 僅刪除超過 24 小時的停止容器
docker container prune --filter "until=24h"

資料卷永遠不會自動刪除,因為這樣做可能會破壞資料

  • 刪除未使用的資料卷
docker volume prune
  • 刪除沒有使用過的網路
docker network prune
  • 刪除所有未使用過的資源
docker system prune

手動刪除/var/lib/docker/volumes的問題解決

當時清理docker使用空間的時候,清過頭了,一下子把掛載的資料卷也給順手清理了