なぜdockerイメージはdockerで使用されていないディスク領域を消費するのでしょうか?質問する

なぜdockerイメージはdockerで使用されていないディスク領域を消費するのでしょうか?質問する

私は docker をセットアップし、docker のシステム データを保存するためにまったく異なるブロック デバイスを使用しました。

[root@blink1 /]# cat /etc/sysconfig/docker
# /etc/sysconfig/docker

other_args="-H tcp://0.0.0.0:9367 -H unix:///var/run/docker.sock -g /disk1/docker"

ご了承ください/disk/1全く別のハードドライブを使用している/dev/xvdi

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  5.1G  2.6G  67% /
devtmpfs        1.9G  108K  1.9G   1% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/xvdi        20G  5.3G   15G  27% /disk1
/dev/dm-1       9.8G  1.7G  7.6G  18% /disk1/docker/devicemapper/mnt/bb6c540bae25aaf01aedf56ff61ffed8c6ae41aa9bd06122d440c6053e3486bf
/dev/dm-2       9.8G  1.7G  7.7G  18% /disk1/docker/devicemapper/mnt/c85f756c59a5e1d260c3cdb473f3f4d9e55ac568967abe190eeaf9c4087afeac

問題は、dockerイメージのダウンロードとdockerコンテナの実行を続けると、他のハードドライブが/dev/xvda1も使い果たされます。

いくつかのDockerイメージを削除することでこの問題を確認できます。いくつかのDockerイメージを削除した後、/dev/xvda1今はもう少し余裕があります。

何か見逃しているのでしょうか?

私の Docker バージョン:

[root@blink1 /]# docker info
Containers: 2
Images: 42
Storage Driver: devicemapper
 Pool Name: docker-202:1-275421-pool
 Pool Blocksize: 64 Kb
 Data file: /disk1/docker/devicemapper/devicemapper/data
 Metadata file: /disk1/docker/devicemapper/devicemapper/metadata
 Data Space Used: 3054.4 Mb
 Data Space Total: 102400.0 Mb
 Metadata Space Used: 4.7 Mb
 Metadata Space Total: 2048.0 Mb
Execution Driver: native-0.2
Kernel Version: 3.14.20-20.44.amzn1.x86_64
Operating System: Amazon Linux AMI 2014.09

ベストアンサー1

/var/lib/docker 全体を削除するのは私には無理です。より安全な方法は次のとおりです:

解決策1:

問題からの次のコマンドはスペースを解放し、/var/lib/dockerを削除したり、Windowsの場合はディスクイメージの場所を確認するよりもはるかに安全です。ここ

前に:

docker info

出力例:

Metadata file: 
Data Space Used: 53.38 GB
Data Space Total: 53.39 GB
Data Space Available: 8.389 MB
Metadata Space Used: 6.234 MB
Metadata Space Total: 54.53 MB
Metadata Space Available: 48.29 MB

Dockerの新しいバージョン(例:17.x +)のコマンド

docker system prune -a

停止したコンテナ、ネットワーク、イメージ、ビルド キャッシュをすべて削除するという警告が表示されます。通常、これを削除しても安全です。(次回コンテナを実行すると、Docker レジストリからプルされる可能性があります)

出力例:

Total reclaimed space: 1.243GB

その後、docker infoを再度実行して、何がクリーンアップされたかを確認します。

docker info

解決策2:

これに加えて、Docker コンテナ内のプログラムがファイル システムに多数のファイルや巨大なファイルを書き込んでいないことを確認してください。

実行中のDockerプロセスのスペース使用量を確認する

docker ps -s #may take minutes to return

または終了したコンテナも含めてすべてのコンテナに対して

docker ps -as #may take minutes to return

その後、問題のあるコンテナを削除できます。

docker rm <CONTAINER ID>

ギガバイト単位のスペースを消費している可能性のある犯人を見つける

docker exec -it <CONTAINER ID> "/bin/sh"
du -h

私の場合、プログラムは数ギガバイトの一時ファイルを書き込んでいました。

ナサニエル・ワイスブロット承認された回答で言及されている問題そして私はその問題からいくつかの情報を得ました)


または

Docker の古いバージョン (例: 1.13.x) のコマンド (sudo ではなく root として実行):

# Delete 'exited' containers
docker rm -v $(docker ps -a -q -f status=exited)

# Delete 'dangling' images (If there are no images you will get a docker: "rmi" requires a minimum of 1 argument)
docker rmi $(docker images -f "dangling=true" -q)

# Delete 'dangling' volumes (If there are no images you will get a docker: "volume rm" requires a minimum of 1 argument)
docker volume rm $(docker volume ls -qf dangling=true)

後 :

> docker info
Metadata file: 
Data Space Used: 1.43 GB
Data Space Total: 53.39 GB
Data Space Available: 51.96 GB
Metadata Space Used: 577.5 kB
Metadata Space Total: 54.53 MB
Metadata Space Available: 53.95 MB

おすすめ記事