だから、例として、データベースファイルを取って、次の手順イメージができます
- は、信頼性の高いディスクなどを作成します。
- このディスクをDockerホストに接続します。
- このディスクをデータベースコンテナにマウントし、このディスクにデータベースファイルを書き込みます。
したがって、NFSで共有され、Dockerホストの/reliable/disk
にマウントされた信頼性の高いディスクを作成したとします。私のデータベースと私は、次のドッカーコマンドを実行することを使用するには:
docker run -d -v /reliable/disk:/data/db my-database-image
私は、データベース・ファイルは、信頼性の高いストレージに書き込まれることを知っているこの方法を。私がDocker Hostを失ったとしても、私はまだデータベースファイルを持ち、NFS共有にアクセスできる別のホストでデータベースコンテナを実行することで簡単に回復できます。
データベース・ログにまったく同じことを行うことができます。
docker run -d -v /reliable/disk/data/db:/data/db -v /reliable/disk/logs/db:/logs/db my-database-image
また、あなたは簡単に別のタスクのために他の容器にこれらのボリュームをマウントするバインドできます。
docker run -d -v /reliable/disk/logs/db:/logs/db:ro my-log-processor
これは、ミッションクリティカルなシステムである場合、これは私の推奨されるアプローチのようになります。あなたは読み取り専用他の容器にあなたのデータを保護するために、それらを取り付けるバインド検討する必要があります。
ない
ミッションクリティカルシステムは、ミッションクリティカルではないですし、データ損失の高い可能性を許容できるならば、私はあなたがやりたいことのために正確に使用されているDocker Volume APIになります管理コンテナのライフサイクルを超えて生きるべきデータ用のボリュームを作成することです。 docker volume
コマンドのいいところは、それはあなたが名前のボリュームを作成することができますし、あなたがそれらをよく名前ならば、それは、彼らがために使用されているものを人々に非常に明白にできることである。
docker volume create db-data docker volume create db-logs
あなたが、その後することができますコマンドラインから容器にこれらのボリュームをマウントします。
docker run -d -v db-data:/db/data -v db-logs:/logs/db my-database-image
これらのボリュームは、あなたのコンテナとのライフサイクルを超えて存続しますDockerホストの場合はファイルシステムに保存されます。あなたは使用することができます。
docker volume inspect db-data
をデータが格納されている場所を見つけるとバックアップその場所をあなたがしたい場合には。
Docker Composeのようなものを見ると、すべてを1つのファイルに宣言してから、1つのコマンドで環境全体を作成することもできます。