Dockerのdocumentationは、ボリュームを「移行」できると述べています。これは、あるホストから別のホストにボリュームを移動できる必要があると想定しています。 (この点については喜んで訂正することができます。)しかし、同じドキュメントページでは、これを行う方法についての情報は提供されていません。ホスト間でDockerボリュームを移行する方法は?
older(2015年頃)の質問には、これは不可能だと言われていますが、2年後にもう一度聞いてみると思いました。
役立つ場合は、[TinyDB] +ローカルディスクをデータストレージとして使用するFlaskアプリを開発しています。これ以上のものは必要ないと判断しました。これは現時点での学習のために行われたプロジェクトなので、非常に軽量化することに決めました。このプロジェクトは、次のような構造になっています。彼らはバージョン管理下に置かれていないとイメージを構築するときにドッカーによって無視されるように
/project_directory
|- /app
|- __init__.py
|- ...
|- run.py # assumes `data/databases/ and data/files/` are present
|- Dockerfile
|- data/
|- databases/
|- db1.json
|- db2.json
|- files/
|- file1.pdf
|- file2.pdf
私は、私の.dockerignore
と.gitignore
内のフォルダdata/*
を持っています。
私はこのアプリを開発する際に、できるだけ実際に近いデータベースとPDFを扱おうとしています。そのため、実際のデータの非常に小さなサブセットでアプリをシードしました。 Dockerコンテナのインスタンス化時に直接data/
にマウントされたボリューム。
私がしたいことは、リモートホストにコンテナを展開することですが、リモートホストにスターターデータがシードされていることです(理想的には、利便性を最大限に高めるためにローカルで使用していたボリュームです)。後でさらに多くのデータがリモートホストに追加されるにつれて、私はそれを取り戻すことができ、開発中にエンドユーザーが入力した最新のデータを扱うようにしたいと考えています。
私がやっている "ハッキー"なやり方は、ちょうどうまくいくかもしれないrsync
を使っています。しかし、欠けている解決策があれば、私は大いに参考に感謝します!
これは役に立つかもしれないhttps://www.guidodiepen.nl/2016/05/transfer-docker-data-volume-to-another-host/ – yamenk