このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Docker入門】コンテナにボリュームをマウントする
ボリュームの作成
まず、「vol1」ボリュームを作成します。
・「docker volume create vol1」コマンドを実行します。
PS C:\Users\joeac> docker volume create vol1
vol1
コンテナへのマウント
Ubuntuコンテナを作成してへ「Vol1」ボリュームをマウントします。
コマンドは以下となります。
docker run -v vol1:/tmp/volume --rm -it ubuntu
コマンドの意味は下表のとおりです。
コマンド | 説明 |
---|---|
docker run | Dockerコンテナを実行するためのコマンド |
-v vol1:/tmp/volume | ボリュームのマウントを行うオプション。vol1 という名前のボリュームを、ホストマシン上の「/tmp/volume 」ディレクトリにマウントする |
--rm | コンテナが終了した際に自動的に削除するオプション |
-it | インタラクティブモードでコンテナを起動するオプション |
ubuntu | 使用するDockerイメージの指定。Ubuntuイメージを使用してコンテナを起動する |
このコマンドを実行することで、指定されたボリュームをマウントしたUbuntuコンテナが作成され、インタラクティブモードで実行されます。コンテナの終了後には自動的に削除されます。
・「docker run -v vol1:/ tmp /volume -rm -it ubuntu」コマンドを実行します。
PS C:\Users\joeac> docker run -v vol1:/tmp/volume --rm -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
bccd10f490ab: Pull complete
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:latest
root@ac5798f0e48f:/#
コンテナにボリュームをマウントすることは、コンテナ内のファイルシステムに外部のデータを接続することを意味します。これにより、コンテナ内でデータを永続化し、異なるコンテナ間でデータを共有することができます。
マウントされたボリュームへのアクセス
マウントされたボリュームは、ディレクトリとして扱うことができ、ファイルの書き込みや読み込みが可能です。
以下のコマンドを実行して、ファイルの書き込みと読み込みを行います。
- 「cd /tmp/volume」コマンド
- 「date > date.txt」コマンド
- 「cat date.txt」コマンド
root@ac5798f0e48f:/# cd /tmp/volume
root@ac5798f0e48f:/tmp/volume# date > date.txt
root@ac5798f0e48f:/tmp/volume# cat date.txt
Sat Mar 23 14:12:20 UTC 2024
コンテナとボリュームの関係
コンテナとボリュームとの関係を確認します。
以下のことを確認します。
コンテナは消滅してもボリュームは残る。
コンテナの終了
・「exit」コマンドを実行します。
「--rm
」オプションを指定して、「docker run」コマンドを実行したので、コンテナは削除されるはずです。
root@ac5798f0e48f:/tmp/volume# exit
コンテナの確認
・「docker container ls -a」
PS C:\Users\joeac> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ボリュームの確認
・「docker volume ls」コマンドを実行します。
PS C:\Users\joeac> docker volume ls
DRIVER VOLUME NAME
local vol1
ボリュームが存在することが分かります。
別のコンテナでマウント
以下の内容を確認します。
別のコンテナでボリュームをマウントして使える。
BusyBoxコンテナを「vol1」ボリュームにマウントします。
BusyBoxについては以下のコンテンツを参考にしてください。
コマンドは以下となります。
docker run -v vol1:/tmp/volume --rm -it busybox
コマンド | 説明 |
---|---|
docker run | Dockerコンテナを実行するためのコマンド |
-v vol1:/tmp/volume | ボリュームのマウントを行うオプション。「vol1 」という名前のボリュームを、ホストマシン上の「/tmp/volume 」ディレクトリにマウントする |
--rm | コンテナが終了した際に自動的に削除するオプション |
-it | インタラクティブモードでコンテナを起動するオプション |
busybox | 使用するDockerイメージの指定。BusyBoxイメージを使用してコンテナを起動する |
BusyBoxコンテナからvol1ボリュームにマウントする。
・「docker run -v vol1:/tmp/volume --rm -it busybox
」コマンドを実行します。
PS C:\Users\joeac> docker run -v vol1:/tmp/volume --rm -it busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
7b2699543f22: Pull complete
Digest: sha256:650fd573e056b679a5110a70aabeb01e26b76e545ec4b9c70a9523f2dfaf18c6
Status: Downloaded newer image for busybox:latest
/ #
別のコンテナで作成したデータにアクセスできることを確認する。
以下のコマンドを実行して、ファイルの読み込みを行います。
- 「cd /tmp/volume」コマンド
- 「cat date.txt」コマンド
/ # cd /tmp/volume
/tmp/volume # cat date.txt
Sat Mar 23 14:12:20 UTC 2024
別のコンテナで作成したデータにアクセスできることが確認できました。
BusyBoxコンテナを終了させます。
・「exit」コマンドを実行します。
/tmp/volume # exit
PS C:\Users\joeac>