CodeGym /コース /Docker SELF /ボリュームをコンテナにマウントする

ボリュームをコンテナにマウントする

Docker SELF
レベル 19 , レッスン 2
使用可能

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 ボリュームの内容を確認する

ボリュームを一時的なコンテナにマウントすることで中身を確認できるよ。

ボリュームをマウントして一時的なコンテナを起動する:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

この例では、ボリュームmy_volumeの内容が表示されるよ。

ボリュームを削除する

もう使わないボリュームを削除する。

ボリュームの削除:

Terminal

docker volume rm my_volume

もしボリュームがコンテナで使用されていると、Dockerはエラーを出すよ。ボリュームを使用しているコンテナが停止されて削除されていることを確認してね。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION