基本的にDockerのコンテナは使い捨てなので、永続化させたいデータはコンテナ外に置くことが多いと思います。Dockerでは、コンテナ内のディレクトリを実ホストのディレクトリにマウントする設定を入れることで、これを実現できます。
Dockerのコンテナを再起動しても、元のデータが残ります。特にDocker内でデータベースを使っている場合には、重要な設定になると思います。
またDockerのコンテナ内のアプリケーションの設定ファイルなどを、コンテナ外部のディレクトリに置く場合にも利用されます。
設定の書式は「コンテナの外のホストのディレクトリパス:コンテナ内のディレクトリパス」になります。
下記に設定例を示します。Redashで利用しているPostgressのデータベースのデータ本体をコンテナ外マウントした場合を想定しています。
volumes:
# コンテナ外のディレクトリ:コンテナ内のディレクトリ
- /usr/docker/redash/postgres/opt/postgres-data:/var/lib/postgresql/data
コメント