GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

例を使用したDockerボリュームの説明

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の旅。


Docker
  1. Dockerとは何ですか?コンテナの使用方法を学ぶ–例を挙げて説明

  2. Dockerログ:ログとは何かとその使用方法(例を含む)

  3. Dockerを使用してJenkinsをインストールする方法

  1. LVMを使用したLinuxでの論理ボリュームの作成

  2. Dockerボリュームを理解する

  3. ディスク管理を使用したボリュームの拡張と縮小

  1. 例を使用してDockerイメージに変更をコミットする方法

  2. Dockerボリューム:作成して開始する方法

  3. NFS Dockerボリューム:作成および使用方法