Dockerの場合 、データはコンテナ内に保存されます。また、コンテナを削除するとデータが失われます。このガイドでは、Dockerボリュームを作成する方法、それをコンテナーにアタッチする方法、およびデータを格納するために同じボリュームを2つ以上のコンテナー間で共有する方法を学習します。
Dockerの基本をまだ知らない場合は、次のガイドを参照してください。
- Docker入門
Dockerにボリュームが必要なのはなぜですか?
- コンテナを削除しても、ボリュームは削除されません。
- ボリュームをコンテナにアタッチまたはデタッチします。
- 異なるコンテナ間でボリューム(ストレージ/データ)を共有します。
- コンテナをストレージから切り離します。
- ボリュームをリモートホストまたはクラウドに保存します。
コンテナだけでなく、データの論理分割も可能です。削除した場合と同じようにデータを保存できます
コンテナの場合、データも表示されます。したがって、コンテナを破棄した後、ボリュームを既存のコンテナと新しいコンテナにアタッチできます。
Dockerボリューム入門
ドッカーボリューム コマンドは、ボリュームの作成、ボリュームの詳細データの検査、使用可能なボリュームの一覧表示、およびボリュームの削除を行うためのボリュームコマンドの詳細を表示します。
# docker volume
「dockervolume」コマンドのヘルプセクションを表示する
Dockerボリュームの作成
Dockerボリュームを作成するための構文は次のとおりです。
docker volume create <volume_name>
例:
# docker volume create devops_volume
上記のコマンドは、 devops_volumeという名前のDockerボリュームを作成します 。
Dockerボリュームを作成する
Dockerボリュームの一覧表示
作成されたすべてのDockerボリュームを一覧表示するには、次のコマンドを実行します:
# docker volume ls
Dockerボリュームのリスト
Dockerボリュームの検査
dockerボリューム検査 コマンドは、ボリューム、場所、名前、スコープの作成に関する詳細を提供します。
構文:
docker volume inspect <volume_name>
devops_volumeという名前のDockerボリュームの詳細をお見せしましょう 。
# docker volume inspect devops_volume
Dockerボリュームを検査する
ボリュームがアタッチされたコンテナの作成
構文:
docker container create --name <container_name> -it --mount source<volume_name>,target=/<folder_Name> <image_name>
例:
# docker container create --name myBusyBox1 -it --mount source=devops_volume,target=/app busybox
ボリュームがアタッチされたコンテナを作成します
コンテナが作成されているかどうかを確認するには、 docker ps -aを使用します コマンド:
「dockerps」コマンドの出力
開始コンテナ
新しく作成されたコンテナを開始するには、たとえば myBusyBox1 、実行:
# docker container start myBusyBox1
Dockerコンテナを起動する
上のスクリーンショットにあるように、コンテナmyBusyBox1は8分前に作成され、6秒前に開始されました。
共有ボリュームからコンテナ間でファイルをコピーする
共有場所にある1つのコンテナーにファイルを作成し、別のコンテナーからファイルにアクセスしようとするシナリオを作成しましょう。
myBusyBox1という名前のコンテナをすでに作成しました。別のものを作成しましょう。たとえば、 myBusyBox2 。
コンテナを作成する
これで、実行状態の2つのコンテナー、myBusyBox1とmyBusyBox2ができました。
最初のコンテナに接続して、 / app内にファイルを作成しましょう。 フォルダ。
# docker exec -it myBusyBox1 sh
上記のコマンドを実行すると、コンテナ内に移動します。
次に、 devopsという名前の新しいフォルダーを作成します / appフォルダー内で、最初のコンテナーを終了します。
最初のコンテナに接続する
次に、ファイルをコピーします。たとえば、 index.html 、ローカルシステムから場所 / app / devops / myBusyBox1コンテナの。
# docker container cp index.html myBusyBox1:/app/Devops
次に、別の2番目のコンテナ( myBusyBox2 )に接続します / app / devops内にあることを確認します index.htmlをフォルダに入れます ファイルが存在するかどうか。
# docker exec -it myBusyBox2 sh
2番目のコンテナに接続する
上のスクリーンショットから、両方のコンテナが同じボリュームを共有していることが確認されます。
docker volume inspect を使用して、ボリュームのマウントポイントの場所を確認できます。 以下のようなコマンド:
# docker volume inspect devops_volume
dockerinspectvolumeコマンド
ご覧のとおり、マウントポイントの場所は / var / lib / docker / bytes / devops_volume / _data 。
マウントポイントの場所に移動して、コピーしたファイルが使用可能かどうかを確認しましょう。
Dockerボリュームマウントポイント
マウントポイントの場所で同じファイルが見つかりました。
Dockerボリュームを削除する
ボリュームを削除する構文は次のとおりです。
docker volume rm <volume_name>
devops_volumeというボリュームを削除しましょう 。
# docker volume rm devops_volume
Dockerボリュームを削除する
上のスクリーンショットでは、ボリュームを削除しようとしていますが、ボリュームがすでに使用されているため、削除できません。したがって、最初にコンテナを強制終了し、ボリュームを解放する必要があります。その後、ボリュームを削除できます。
これを行うには、最初にコマンドを使用して実行中のすべてのコンテナーを削除します。
# docker rm –f $(docker ps -aq)
次に、ボリュームを削除します:
# docker volume rm devops_volume
Dockerボリュームを削除する
すべてのボリュームを一度に削除
docker rmを使用する コマンドを実行すると、一度に1つのボリュームを削除できます。複数のボリュームがあり、すべてのボリュームを削除する場合は、プルーニングを使用する必要があります コマンド。
いくつかのボリュームを作成しましょう:
Dockerボリュームを作成する
次に、コマンドを使用してすべてのDockerボリュームを一度に削除します:
# docker volume prune
すべてのDockerボリュームを一度に削除します
見る?すべてのボリュームを一度に削除しました。
推奨される読み物:
- Dockerネットワークの概念の説明
- 実行中のDockerコンテナを自動的に更新する方法
- ctop –Linuxコンテナ用のコマンドライン監視ツール
- Portainer –Dockerを管理する最も簡単な方法
- PiCluster –シンプルなWebベースのDocker管理アプリケーション
- Docker –ターミナルからDockerコンテナを管理する
作成者について:
Dhruv Tiwari は、自動化が大好きで、Linuxを大規模に操作し、システムがLinuxボックスにログインする必要がないほどスマートになる日の夢を見るDevOpsエンジニアです。ソースコードからコード展開、本番環境へのCI/CDの旅。