2016-05-01 8 views
4

私はpyhtonスクリプトを持って成長し続けるそのループ上のAWS S3からドッカーコンテナは

  1. ダウンロードビデオチャンク/ファイル名
  2. ソートファイルを順番に、それらをconcatsします。 AWS SQSキューが空になるまで
  3. AWS S3にアップロード
  4. の全体の処理されたビデオファイル
  5. 削除フォルダ/ファイル名

は、次にループに続きます。

スクリプトは素晴らしいです!私は何ヶ月もそれを実行しています。ハードドライブの空き容量はさまざまですが、ビデオのサイズによっては約5%にはなりません。

私はこのスクリプトをドッカーコンテナに入れて、ドッカーの作成を実行することにしました。一度に複数のスクリプトを実行できるようになりました。

問題は、ハードドライブがいっぱいです!私はディスク上のスペースを5実行すると知っているが、私はファイルを処理し終えたら、削除を取得します。

しかし、ドッカーでは、キャッシュなどと思われます。私は各容器に入れて、彼らはうまく動作しています。古いファイルとすべてを削除します。

ドッキング用のコンテナとサービスとして動作していることの違いがHDにどのような影響を与えるかはわかりません。

いずれの方向も良いでしょう。

これに追加します。ドッカーコンテナを "rm"すると、ハードドライブスペースが解放されます。私はドッカーps -sを実行し、コンテナのスペースは狂っていません。ドッカーコンテナの中のファイルを "rm"しても実際にはそれを見出すことができないような感じです。

答えて

5

イメージをホストからマップされていないディレクトリにダウンロードする場合、ドッカーコンテナは、コンテナが削除されるまで使用されたディスクスペースを解放しません。コンテナ内で実行されるものは一時的ですが、HOST doesnコンテナの内部で何が起こっているのかを知ることはできません。

この意味では、仮想マシンイメージによく似ていて、必要に応じて成長するファイルでバックアップされていますが、縮小することはありません。 Dockerには、実行中のコンテナが変更を追跡するためのディレクトリがあります。ホスト上では、実行中のコンテナをバックアップするファイルを見つけることができます/var/lib/docker/containers/<id>

ディスクスペースを共有するコンテナが必要な場合は、ホストからの共有ボリュームを各ドッカーコンテナイメージにマップして共有することをお勧めします。

上記次

docker run -ti -v /host/dir:/container/dir ubuntu bash 

を試してみては、端末対話モードでUbuntuのイメージを実行して、実行中のコンテナ内のホストのディレクトリ/host/dirを取り付けます。コンテナが/container/dirに書き込むものはすべてホスト/host/dirに表示され、それをマウントしている他のコンテナにも変更が表示されます。

共有ボリューム内で行われたことはマウントしているすべてのコンテナに見られるので、ファイル/ディレクトリを追加したり削除したりするときは注意が必要です。

+0

を見てください。 どのようにnginxまたは任意のWebサーバーコンテナが常時キャッシュでいっぱいにならないのですか? – joeymiller

+1

@ user2457010あなたはホスト '/ tmp'ディレクトリをマウントできます。楽しい事実、あなたが 'rm'のものであってもコンテナのディスク使用量が増えます! Dockerは、コンテナのイメージの変更のログとしてすべてを保持します。 '/ var/lib/docker/container// -json.log'ファイルを見て遊んでください。私は、必要に応じてマウントされたボリュームを使用して、コンテナーの内部ファイルシステムをできるだけ読み取り専用として扱おうとしています。 – Ray

1

ボリュームを使用し、これらのボリュームをコンテナにマウントすることをお勧めします。ボリュームの変更は、コンテナファイルシステムの変更(コンテナを削除するまでは実際には削除されません)とは異なり、瞬時に行われます。

はそれが決して本当にディスク領域を解放していないので、だから、基本的に親切にも、コンテナ内の「RMファイル名」を実行するのは無駄である docs here

+0

名前付きボリュームは使用済みのディスクスペースを解放しますか? 名前付きボリュームでファイルを追加したり削除したりするのはどうしたらいいですか? – joeymiller

+1

はい、ファイルシステム上のデータを操作する必要がある場合は、マウントされたボリュームを使用してください。 – JustDanyul

関連する問題