2016-04-05 7 views
0

私はこの回答をどこでも見つけることができません。多くのチュートリアルでは、データのみのコンテナを使用すると、ドッカーで永続データをどのように取得するかが示されます。しかし、私が理解できないことは、データのみが存在する限り、データは永続的であると思われることです。シャットダウンして再起動すると、データは単に消えます。Docker 'データのみのコンテナ'がシャットダウンされています

システムが100%アップすることはないと考えて、長期データベースの内容を物理的なシステムの再起動などを超えて保持したいと考えています。データを正しく保持するにはどうすればよいですか?

答えて

2

多くのチュートリアルでは、データのみのコンテナを使用すると、ドッカーで永続データをどのように達成するかということになります。

最近のバージョンのDockerではこれは当てはまりません。ボリュームは現在「ファーストクラス」の市民になり、docker volumeコマンドで作成/削除/ etcを行うことができます。ことがデータである

$ docker run -v myvolume:/data ... 

私はしかし、理解していないもの:

$ docker volume create --name myvolume 

以降あなたはこのようにそれを添付することができます上を:これは、あなたが実行することにより、永続的なデータボリュームを作成できることを意味しますデータのみのコンテナが存在する限り永続的であるように見えます。

データオンリーコンテナをどのように作成したかに関する質問情報に含めると役立ちます。データのみのコンテナはではなく、が有用であるためには「実行中」でなければならないことに注意してください。それは単に存在しなければならない。もちろん、すぐに/bin/trueを実行して終了します

$ docker run -v /data --name datacontainer busybox true 

::だから、例えば、私はこのようなデータのみのコンテナを作成することができ

$ docker ps -a 
47568a43d386  busybox      "true"     7 seconds ago  Exited (0) 6 seconds ago      datacontainer 

をしかし、コンテナが終了しているにもかかわらず、

$ docker run -it --volumes-from datacontainer busybox sh 
Filesystem   1K-blocks  Used Available Use% Mounted on 
/dev/mapper/tank-docker--vol 
         83844100 2398688 81445412 3% /data 

このメカニズムは、あなたが1.10より前のドッカーで永続的なボリュームを取得するために使用するものですが、もはやである(多分、1.9?):私は、新しいコンテナにボリュームを利用することができませんdocker volumeコマンドのために必要です。

+0

私のやり方で苦労している人のためにこれを追加するだけです。データのみのコンテナによってボリュームが作成されます。ボリュームには生成された名前(4488845jgjg3など)が含まれています。次にコンテナをインスタンス化すると、別の名前の2番目のボリュームが作成されます。両方のボリュームはホストマシン上に存在しますが、idでそれらを参照しない限り、それらのボリュームには自動的にアクセスしません。 – Andy

+0

これは、データコンテナに名前を付け、 '--volumes-from'を使ってボリュームにアクセスする理由です(個々のボリュームのIDについて心配する必要はありません)。 – larsks

関連する問題