ドキュメントを読んだ後、生産的なアプリケーション/サービスデータをどのように管理するのが最適かについて、多少混乱していることに気付きました。
3つのオプションがあるようです:
- ボリュームをホストディレクトリにマップするだけです(つまりの
-v
引数docker run
) - データ用のdockerコンテナーイメージを作成します(つまり、コンテナーとを分離します
--volumes-from
) - Dockerボリュームの作成(つまり
docker volume create
)
今、受け入れられている慣行はオプション#2であるようですが、#3の目的は何ですか?
特に、これらのシナリオをどのように正しく処理しdocker volume
、各状況にデータボリュームコンテナーまたはこれを使用する方がよいでしょうか?
- サーバーの別のボリュームやストレージ層にアプリケーションデータが必要です
- バックアップ
- データの復元
btrfs scrub
して破損したファイルを見つけて修正できます。Docker化されたものがどのように機能するかはわかりませんが、データの腐敗を防ぐことはできないため、個々のファイルを復元するのではなく、何か悪いことが起こった場合は常に完全な復元が必要です。別の考えでは、抽象化の別のレイヤーが追加されるため、ファイルの読み取りと書き込みがさらに遅くなります。私はどういうわけか2番目と3番目の利点を理解していませんが、dockerの使用経験がないため、これは変わる可能性があります。