docker volume rm コマンドを使ってボリュームを削除する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker volume rm コマンドを使用して Docker ボリュームを管理する方法を学びます。まずボリュームを作成し、その後削除する練習を行います。

さらに、コンテナがボリュームを使用しているシナリオを探索し、そのボリュームを削除しようと試みます。これにより、デフォルトの動作を理解し、実行中のコンテナに現在アタッチされているボリュームを強制的に削除する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/run -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/ls -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/ps -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/rm -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/inspect -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/create -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} docker/volume -.-> lab-555262{{"docker volume rm コマンドを使ってボリュームを削除する方法"}} end

ボリュームの作成

このステップでは、Docker ボリュームを作成する方法を学びます。ボリュームは、Docker コンテナによって生成され、使用されるデータを永続化するための推奨方法です。バインドマウントはホストマシンのディレクトリ構造に依存しますが、ボリュームは Docker によって完全に管理されます。

ボリュームを作成するには、docker volume create コマンドの後にボリュームに付けたい名前を指定します。myvolume という名前のボリュームを作成しましょう。

docker volume create myvolume

作成が成功した場合、コンソールにボリュームの名前が表示されるはずです。

次に、docker volume ls コマンドを使用して利用可能なすべてのボリュームをリストアップすることで、ボリュームが作成されたことを確認しましょう。

docker volume ls

出力に myvolume が表示されるはずです。

ボリュームの削除を試みる

このステップでは、前のステップで作成したボリュームの削除を試みます。Docker ボリュームを削除するには、docker volume rm コマンドの後にボリュームの名前を指定します。

myvolume ボリュームの削除を試みましょう。

docker volume rm myvolume

削除が成功した場合、コンソールにボリュームの名前が表示されるはずです。

次に、再度利用可能なすべてのボリュームをリストアップすることで、ボリュームが削除されたことを確認しましょう。

docker volume ls

出力に myvolume が表示されなくなっているはずです。

ボリュームの削除

前のステップでは、ボリュームの削除を試みました。今度は、ボリュームが確実に削除されるようにしましょう。同じ docker volume rm コマンドを使用し、その後にボリューム名を指定します。

docker volume rm myvolume

前のステップでボリュームが正常に削除された場合、ボリュームが見つからないことを示すエラーが表示されることがあります。これは正常な動作であり、ボリュームが削除されたことを確認するものです。前のステップでボリュームが削除されなかった場合、このコマンドによってボリュームが削除されます。

ボリュームが削除されたことを確認するには、再度ボリュームをリストアップします。

docker volume ls

リストに myvolume が表示されないはずです。

ボリュームを作成し、それを使用してコンテナを作成する

このステップでは、新しいボリュームを作成し、そのボリュームを使用してデータを永続化する Docker コンテナを作成します。

まず、mydata という名前の新しいボリュームを作成しましょう。

docker volume create mydata

次に、シンプルな ubuntu コンテナを実行し、mydata ボリュームをコンテナ内の /app ディレクトリにマウントします。また、マウントされたボリューム内のファイルにいくつかのテキストを書き込むコマンドも実行します。

コンテナを実行する前に、ubuntu イメージをプルして、ローカルで利用可能なことを確認しましょう。

docker pull ubuntu

次に、コンテナを実行し、ボリュームに書き込みます。

docker run -d --name mycontainer -v mydata:/app ubuntu bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null"

このコマンドを分解して説明します。

  • docker run: 新しいコンテナを実行するコマンドです。
  • -d: コンテナをデタッチドモード(バックグラウンド)で実行します。
  • --name mycontainer: コンテナに mycontainer という名前を付けます。
  • -v mydata:/app: これはボリュームマウントです。mydata という名前の Docker ボリュームをコンテナ内の /app ディレクトリにマウントします。
  • ubuntu: 使用する Docker イメージです。
  • bash -c "echo 'Hello from the volume!' > /app/greeting.txt && tail -f /dev/null": コンテナ内で実行するコマンドです。「Hello from the volume!」を /app ディレクトリ(マウントされたボリューム)内の greeting.txt という名前のファイルに書き込み、その後 tail -f /dev/null を実行してコンテナを実行し続けます。

コンテナが実行中で、ボリュームがアタッチされていることを確認するには、コンテナをインスペクトできます。

docker inspect mycontainer

出力の「Mounts」セクションを探します。mydata ボリュームが /app にマウントされているエントリが表示されるはずです。

使用中のボリュームの削除を試みる

このステップでは、mycontainer コンテナがまだ使用中の mydata ボリュームの削除を試みます。これにより、実行中のコンテナにアクティブにマウントされているボリュームを削除しようとしたときに何が起こるかを示します。

docker volume rm コマンドを使用して、mydata ボリュームの削除を試みます。

docker volume rm mydata

ボリュームが使用中で削除できないことを示すエラーメッセージが表示されるはずです。これは想定された動作です。Docker は、データの損失や予期しない動作を防ぐため、実行中のコンテナに現在アタッチされているボリュームの削除を防止します。

ボリュームが削除されていないことを確認するには、再度ボリュームをリストアップします。

docker volume ls

出力にはまだ mydata が表示されるはずです。

使用中のボリュームを強制削除する

前のステップでは、実行中のコンテナが現在使用しているボリュームを削除することはできないことを学びました。しかし、使用中のボリュームであっても削除する必要がある場合があります。Docker では、docker volume rm コマンドに -f または --force フラグを使用することで、ボリュームを強制的に削除する方法を提供しています。

注意: 使用中のボリュームを強制的に削除すると、データの損失やそれを使用しているコンテナの予期しない動作を引き起こす可能性があります。このオプションは慎重に使用してください。

mycontainer がまだ実行中の状態で、mydata ボリュームを強制的に削除してみましょう。

docker volume rm -f mydata

コンソールにボリュームの名前が表示され、削除されたことを示します。

次に、ボリュームをリストアップして、ボリュームが削除されたことを確認しましょう。

docker volume ls

mydata ボリュームはリストにもう表示されないはずです。

また、mycontainer の状態を確認することもできます。

docker ps

mycontainer は実行中のコンテナのリストにまだ表示されるかもしれませんが、ボリュームが削除されたため、不健康な状態になっているか、予期せず停止する可能性があります。

最後に、コンテナを停止して削除し、クリーンアップしましょう。

docker stop mycontainer
docker rm mycontainer

まとめ

この実験では、docker volume コマンドを使用して Docker ボリュームを管理する方法を学びました。まず、docker volume create を使用して myvolume という名前のボリュームを作成し、docker volume ls でその存在を確認しました。次に、docker volume rm を使用してボリュームの削除を練習し、再度ボリュームをリストアップすることで削除を確認しました。

また、コンテナがボリュームを使用している場合の docker volume rm の動作を調べました。ボリュームとそれを使用するコンテナを作成し、ボリュームを直接削除しようとすると失敗することを確認しました。最後に、docker volume rm コマンドに -f フラグを追加することで、使用中のボリュームを強制的に削除する方法を学びました。