3.1 ボリューム・マウントの基礎
ボリューム (volumes) をコンテナにマウントするのは、Dockerの重要な機能の1つで、コンテナの外でデータを保持し、それを長期間保存可能かつ利用可能にしてくれるんだ。ボリュームは設定ファイル、データベース、ログ、他の重要なデータを保存するために使えるよ。この講義では、コンテナにボリュームをマウントする方法を解説して、実際の使い方を見ていこう!
ボリューム・マウントの基礎
ボリュームは、すでに言ったように、コンテナのライフサイクルに依存しないで存在するんだ。ホストマシン上の特別なディレクトリに保存されてて、どんなコンテナにも接続可能だよ。
ボリュームのマウントコマンド
ボリュームは、-v
や --mount
パラメータを使ってコンテナを起動するときにマウントできるよ。
3.2 パラメータ -v
パラメータ -v
の使用例
1. ボリュームをコンテナにマウントする
ボリュームを作成して、コンテナにマウントする例:
ボリュームを作成する:
docker volume create my_volume
ボリュームをマウントしてコンテナを起動する:
docker run -d --name my_container -v my_volume:/app nginx
この例では、ボリューム my_volume
がコンテナ my_container
のディレクトリ /app
にマウントされています。
2. 複数のボリュームをマウントする
1つのコンテナに複数のボリュームをマウントすることができます:
docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx
この例では、ボリューム volume1
がディレクトリ /app/data
に、ボリューム volume2
がディレクトリ /app/logs
にマウントされています。
3.3 パラメーター --mount
パラメーター --mount
は、さまざまなパラメーターを指定できる、ボリュームをマウントするためのより詳細な方法を提供します。
1. --mount
を使用したボリュームのマウント
docker run -d --name my_container --mount source=my_volume,target=/app nginx
この例は、-v
を使用した以前の例と類似していますが、より詳細な構文を使用しています。
2. 追加パラメーター付きのマウント
docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx
この例では、ボリュームが読み取り専用モード (readonly
) でマウントされています。
3.4 実践的な例
例1: データベース用ボリュームの使用
データベースデータを保存するためのボリュームを作成して使用する。
ボリュームの作成:
docker volume create db_data
ボリュームをマウントしてデータベースコンテナを起動する:
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v
db_data:/var/lib/postgresql/data postgres
この例では、PostgreSQLデータベースのデータがボリュームdb_data
に保存されます。
例2: 設定ファイル用のボリュームの使用
設定ファイルを保存するためのボリュームを作成し、それをコンテナにマウントする。
ボリュームの作成:
docker volume create config_data
設定ファイルをボリュームにコピーする:
docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"
設定ファイル用ボリュームを使用してコンテナを起動する:
docker run -d --name my_app -v config_data:/app/config nginx
この例では、設定ファイルがボリュームconfig_data
に保存され、それがコンテナのディレクトリ/app/config
にマウントされます。
例3: コンテナのログ
コンテナのログを保存するためのボリュームを作成し、それをコンテナにマウントする。
ボリュームの作成:
docker volume create logs_data
ログ用のボリュームをマウントしてコンテナを起動する:
docker run -d --name my_app -v logs_data:/var/log/nginx nginx
この例では、Nginxのログがボリュームlogs_data
に保存されます。
3.5 ボリュームの内容を確認する
ボリュームを一時的なコンテナにマウントすることで中身を確認できるよ。
例
ボリュームをマウントして一時的なコンテナを起動する:
docker run --rm -v my_volume:/app busybox ls /app
この例では、ボリュームmy_volume
の内容が表示されるよ。
ボリュームを削除する
もう使わないボリュームを削除する。
例
ボリュームの削除:
docker volume rm my_volume
もしボリュームがコンテナで使用されていると、Dockerはエラーを出すよ。ボリュームを使用しているコンテナが停止されて削除されていることを確認してね。
GO TO FULL VERSION