了解しました。
では、「そのディレクトリがボリュームとしてマウントされている」とは何かを理解するために、前提から段階的に3回に分けて説明します。
v
や -mount
オプションでホスト上のディレクトリをコンテナにマウントできる。Docker(Podman含む)のコンテナは、中で何かファイルを作っても、コンテナを消すと全部消える。
docker run -it alpine
# コンテナ内でファイル作成
touch /tmp/hello.txt
# コンテナをexit
exit
# 同じコンテナIDで再起動できなければ、/tmp/hello.txtは消えてる
→ コンテナは使い捨ての仮想マシンのようなものだから、中のデータは保持しないのが原則。
Railsの config/master.key
のような大事なファイルを残したい/外に出したいなら、コンテナの外に置く=ボリュームの使用が必要。
Docker/Podman には主に2種類のボリュームの使い方があります:
種類 | 説明 | 具体例 |
---|---|---|
名前付きボリューム | Docker/Podmanが管理する専用領域 | docker volume create myvol |
バインドマウント(bind mount) | ホスト上の特定のディレクトリを指定してマウント | -v /var/mnt/config:/app/config |