多くのチュートリアルでは、データのみのコンテナを使用すると、ドッカーで永続データをどのように達成するかということになります。
最近のバージョンの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
コマンドのために必要です。
私のやり方で苦労している人のためにこれを追加するだけです。データのみのコンテナによってボリュームが作成されます。ボリュームには生成された名前(4488845jgjg3など)が含まれています。次にコンテナをインスタンス化すると、別の名前の2番目のボリュームが作成されます。両方のボリュームはホストマシン上に存在しますが、idでそれらを参照しない限り、それらのボリュームには自動的にアクセスしません。 – Andy
これは、データコンテナに名前を付け、 '--volumes-from'を使ってボリュームにアクセスする理由です(個々のボリュームのIDについて心配する必要はありません)。 – larsks