web-dev-qa-db-ja.com

Docker for MacでDocker.qcow2のサイズ制限をどのように回避しますか?

公式のpostgresイメージ で実行しようとしている大規模な(100GB以上の)データベースがあります。

Docker forMacの~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/Docker.qcow2ファイルには約60GBのサイズ制限があるため、データをDockerボリュームに保存できません。

マウントされたホストディレクトリボリュームでのファイルアクセスは通常のボリュームよりもはるかに遅いため、ホストディレクトリをボリュームとしてマウントすることを躊躇します。

これらは、これらの問題についてより詳細に説明するいくつかの便利なリンクです。

  • This Docker.qcow2ファイルのサイズ制限について説明します
  • This Docker.qcow2ファイルのサイズ制限についても説明します
  • This マウントされたホストディレクトリのボリューム速度の問題について説明します
  • This Docker.qcow2ファイルを大きくなる可能性のあるファイルに置き換える方法についてのわかりやすい説明
  • This Docker.qcow2ファイルの内容が削除されても縮小しない方法について説明します(これは直接関連していませんが、問題をさらに複雑にする可能性があります)

速度の低下を食い止めてホストディレクトリをマウントするだけですか? qemuで大きくなる可能性のあるqcow2ファイルを手動で作成しますか(これを行う場合、アップグレード間でこのファイルを維持する必要がありますか)?この問題を処理するために何か他のことをしますか?

21
James Chevalier

Docker for Mac 18.06 qcow2ファイル形式からrawファイル形式に切り替わり、速度とディスク使用量が向上します。 Dockerには、すべてのデータに使用できるスペースが限られているという点で、コアの問題は依然として残っています。ただし、[設定]-> [ディスク]-> [ディスクイメージサイズ]内でその制限を設定できるようになりました。

Docker for Macバージョン 17.12 は、rawファイル形式を導入した最初のバージョンでしたが、初期リリースにはいくつかのバグがあり、一時的に機能として削除されていました。そのページで「raw」を検索して、機能の履歴を振り返ることができます。

Docker for Macがディスク使用量を報告する方法についての素晴らしいメモ ここ があります...

これにより、論理サイズが表示されます。

ls -alh ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

これは物理的なサイズを表示しますが:

du -h ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

1
James Chevalier

次のスクリプトは、引数として渡されたイメージを保持する新しい縮小されたDocker.qcow2ファイルを削除して再作成します。

https://blog.mrtrustor.net/post/clean-docker-for-mac/

お役に立てれば。

2
obe6

このような状況では、大きくなる可能性のあるqcowイメージを作成することを強くお勧めします。

これは比較的単純なプロセスであり、大規模なデータベースを実行する場合に一般的に非常に必要なパフォーマンス上の利点が得られます。

1
programmerq