大家好,想咨询一下,docker是如何管理磁盘的呢?我有个jenkins的应用放在了一个容器里面,运行一段时间后容器变得非常巨大,然后我在容器中删除了部分大的文件,df -h发现不管是容器的虚拟分区还是宿主机的磁盘都没有释放任何空间出来,依旧是42%(容器)和50%(宿主)的磁盘占用,这是什么原因造成的呢?该如何解决呢?
大家讲道理2017-04-24 09:14:58
Dockerイメージとコンテナを理解する必要があります。もちろん、これはファイル システムの観点から理解されます。
Docker イメージは読み取り専用のファイルです。強調しておきますが、これは読み取り専用なので、実際に画像内のファイルを削除することはできません。削除するときは、コンテナーがファイルを認識できないようにマークを付けるだけです。したがって、このファイルはイメージ内にまだ存在しており、ディスク領域を占有しています。
Docker コンテナは、イメージに基づく読み取り/書き込みレイヤーであり、読み取りと書き込みが可能です。ファイルの読み取りおよび書き込みを行う場合、ファイルはイメージからコンテナーの読み取り/書き込みレイヤーにコピーされ、元のファイルがまだイメージ内にある間に、コピーされたファイルの読み取りおよび書き込みが行われます。さらに、このコンテナの読み取り/書き込み層もディスク領域を占有します。
したがって、ディスク領域を解放するには、イメージとコンテナを削除するしかありません。
画像を削除
リーリーコンテナを削除
リーリーすべての画像を削除
リーリーすべてのコンテナを削除します
リーリーさらに、コンテナのデータ ボリュームもディスク領域を占有します。次のコマンドを使用して期限切れのボリュームを削除できます。 リーリー
もちろん、最も暴力的な方法は、Docker がイメージ、コンテナー、データ ボリュームを保存するディレクトリ (/var/lib/docker) を削除することです
注意して使用してください! ! ! : リーリー