Docker が占有しているスペースをクリーンアップします。マウントされたボリュームが大きすぎます。イメージ、コンテナー、およびマウントされたデータをクリアします。

1. 質問

dockerでインストールしたesを使っていたところ、メモリがいっぱいになって非常に不快で、コンテナとイメージを削除した後もメモリがかなり占有されていました。/var/lib/docker/volumes にマウントされているデータが多すぎることが判明しました。これはテストに使用した学習サーバーなので、その中のすべてを削除しました。[ただし、データを使用する必要がある場合があるため、すべてを削除することはできず、削除を指定する必要があります。ここでは、Docker コンテナー ストレージのクリーンアップに必要なコマンドとメソッドをいくつか紹介します。

2. Docker コンテナに保存されているコマンドを表示する

docker system df [dockerコンテナ占有コマンドの表示]
ここに画像の説明を挿入します

Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
Containers:运行的容器占用的空间,表示每个容器的读写层的空间。
Local Volumes:容器挂载本地数据卷的空间。
Build Cache:镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)

3.Docker 占有の説明

3.1 ミラー占有

イメージは、mysql、nginx、java.jar など、Docker コンテナーで実行可能なダウンロードしたファイルです。

docker images        查看镜像文件
docker rmi -f 镜像id 删除镜像

3.2 コンテナ占有

コンテナーは、イメージに基づいてパッケージ化された実行可能なシステムです。コンテナーを作成すると、データは次の 2 つのディレクトリ
/var/lib/docker/containers/IDディレクトリに表示され、すべてのログはローカル マシン上のこのディレクトリに JSON 形式で保存されます。
/var/lib/docker/overlay2 [ファイル システム] コンテナ ファイル システムに基づいて保存されたデータは、ローカル マシンのこのディレクトリに書き込まれます。

3.3ボリュームのマウント占有

ボリューム データ ボリュームは、コンテナ内のデータをホスト上のアドレスに接続します。

docker inspect 容器id可以查看容器挂载的目录在哪里
在对应的Mounts下面可以看到 "Destination" 是容器内目录 "Source" 是主机的目录地址

ここに画像の説明を挿入します

3. コンテナを削除し、保存されているコマンドを表示します。

【查看当前目录下所有目录的磁盘占用情况】
du -h --max-depth=1
【删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(在构建镜像时产生的 tag 为 none 的镜像,没有和任何其他有 tag 的镜像有关联)】
docker system prune
【命令清理,该命令清理得更加彻底,可以将没有容器使用 Docker 镜像都删掉】
docker system prune -a // 谨慎操作
【查看目前在使用的volum】
docker volume ls
【删除目前没有容器使用的volume】
docker volume rm $(docker volume ls -q)
【命令可以查看某个 volume 的具体信息】
docker inspect volume名称

おすすめ

転載: blog.csdn.net/weixin_42581660/article/details/127511234