2016-10-05 6 views
1

私はそれを実行するためにDockerのコースを行い、私は最初のアプリケーションを移行しようとしています。毎日の使用では、私のディスクの空き容量を追跡するのが難しいと感じています。私はイメージを実行して削除するたびに、利用可能なスペースの元の量に戻っていないことに気付きました。ドッカーが私のディスクスペースをいっぱいにしています

私は最初から削除するには、私のコンテナを与えているの生活のサイクルは次のとおりです。 ドッキングウィンドウのビルド...

  • ドッキングウィンドウの実行CONTAINER_TAG
  • ドッカ停止CONTAINER_TAG
  • RM]ドッキングウィンドウのCONTAINER_ID
  • rmiドッカーimage_id

nodから実行されるカスタムのコンテナeと標準的なredis。私のOSはOSX 10.11.6です

私はMbsを失っているのを見ます。私は間違って何をしていますか? Dockerはこのキャッシュをおそらく私は道に逃している何か?

答えて

2

Docker on Macは、多くの人を傷つける追加の問題があります.docker.qcow2ファイルのサイズが拡大して(最大64GB)、後で縮小することはありません。 djs55によって回答の1で述べたように

​​

これは修正される計画であるが、そのないクイックフィックス。引用:.qcow2が最大サイズは64GiBの 有するブロックデバイスとしてVMにさらされる

。新しいファイルがコンテナによってファイルシステムに作成されると、 新しいセクタがブロックデバイスに書き込まれます。これらの新しいセクタは、.qcow2ファイルに追加された であり、最終的には が完全に割り当てられるまで、サイズが大きくなります。最大サイズの になると成長が止まります。

...

我々はいくつかの段階でこれを修正することを望んでいる:(これは 企画/設計段階ではまだですが、私はそれはあなたのアイデアを与える願っています注意してください)

1) TRIMをサポートする接続プロトコルに切り替えて、 はqcow2の隣のメタデータファイルでフリーブロックトラッキングを実装します。 ディスクを圧縮するためにオフラインで実行できる圧縮ツールを作成します(qemu-imgの変換のようなビットですが、=/dev/zeroの場合は の場合はddは不要です。空 スペースは、VMを再起動する上で、我々はそれが十分に我々は少しのようである(オンライン圧縮機に切り替わります

3)迅速だと仮定すると、 を固めツールの実行を自動化します))

2でありますGC プログラミング言語)

また、 .qcow2 のサイズは設定可能です。おそらく、64GiBは一部の環境では大きすぎるので、 小さなキャップが役立ちますか?

+0

これはアンサーです。私の.qcow2は最大35Gb ++でした! –

+0

ありがとうございました。私はこれを処理する唯一の方法はこのファイルを頻繁にクリーンアップすることだと思います。 –

+0

@FrancoRabagliaはい私は今すぐ適切な回避策が見当たらないので、計画されている修正の最初の段階になります:/私が更新を見つけたら、それを解答に編集します。 – Gimby

0

ドッキングウィンドウのディスク容量を制限する方法についていくつかのオプションがありますが、私はログを回転/制限することによって開始したい:Docker container logs taking all my disk space

例えば最近のドッカーバージョンをお持ちの場合は、コンテナーごとに--log-opt max-size=50mオプションを付けて起動することができます。 また、古い未使用のコンテナがある場合は、/var/lib/docker/containers/*/*-json.log

7

というDockerストレージの3つの領域があります。Dockerは慎重であるため、マウントすることができます終了したコンテナ、未使用のコンテナボリューム、未使用のイメージレイヤーは自動的に削除されません。多くのビルドと実行がある開発環境では、ディスク容量が大きくなる可能性があります。停止したコンテナ

  • docker rmi $(docker images -f "dangling=true" -q)
  • を削除 - -

    • docker rm $(docker ps -a -q)ないボリュームを削除 -
    • docker volume rm $(docker volume ls -qf dangling=true)任意の画像で使用されていない画像層を除去:

      これらの3つのコマンドが使用されていない何かをダウンクリア任意のコンテナによって使用されます。

    これらは実行すると安全です。画像で参照される画像レイヤーやコンテナで使用されるデータボリュームは削除されません。ローカルディスクをエイリアスしたり、CRONジョブに入れて定期的にクリーンアップしたりすることができます。

    2
    docker container prune 
    docker system prune 
    
    +0

    これはどうなりますか?詳しく教えてください。 – Hizqeel

    +0

    'docker image prune'や' docker volume prune'など、この回答に追加する必要があるプルーンコマンドがあります。 – jpgard

    関連する問題