このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

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

ボリュームの作成

まず、「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 runDockerコンテナを実行するためのコマンド
-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については以下のコンテンツを参考にしてください。

BusyBoxコンテナを使ってみる

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 BusyBoxコンテナを使ってみる 「docker run -it –rm busybox」コマンドの概要 …

コマンドは以下となります。

docker run -v vol1:/tmp/volume –rm -it busybox

コマンド説明
docker runDockerコンテナを実行するためのコマンド
-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>