導入
ボリューム(volume) は、Docker が管理する「データ専用の保管庫」です。コンテナの外にあるので、コンテナを消してもボリュームは残ります。まずは保管庫そのものを作り、一覧し、中身を確認するコマンドから始めましょう。
説明
ボリュームは docker volume create <名前> で作ります。これは「データの入れ物」を用意するだけで、まだどのコンテナにもつながっていません。
flowchart LR
V[("ボリューム dbdata<br/>コンテナの外の保管庫")]
C1["コンテナ db(消える)"] -.マウント.-> V
C2["新しいコンテナ db(作り直し)"] -.再マウント.-> V
V --> N["データは生き残る"]
作った保管庫は docker volume ls で一覧できます。
docker volume create dbdata
docker volume ls
DRIVER local / VOLUME NAME dbdata のように表示されれば成功です。local は「このホストのディスク上に保存する」という標準のドライバです。
保管庫の詳細(実際にどこに保存されるか)は docker volume inspect で見られます。
docker volume inspect dbdata
Mountpoint(/var/lib/docker/volumes/dbdata/_data のようなパス)が、Docker がデータを実際に置く場所です。ふだんは意識しませんが、「コンテナの中ではなく、ホスト側のこの場所に保存されている」ことが分かります。だからコンテナを消してもデータが残るのです。
やってみよう
docker volume create dbdataで保管庫を作り、docker volume lsで一覧に現れることを確認しましょう。docker volume inspect dbdataでMountpoint(実際の保存場所)を見てください。- もう1つ
docker volume create uploadsを作り、docker volume lsに2つ並ぶことも試しましょう。