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

WindowsでDockerボリュームを簡単に作成する方法

Dockerボリュームは、Dockerコンテナーによって作成および使用される永続データを処理するための推奨される方法です。 WindowsでDockerボリュームを作成する方法を説明することにより、これがどのように機能するかを見てみましょう。それらを管理する方法も学びます!

このブログ投稿には、TechSnipsの寄稿者であるMattMcElreathによって作成されたコンパニオンビデオがあります。お気軽に時計をお持ちになるか、テキストをご希望の場合はお読みください。

永続データの保存

コンテナの永続データを保存する場合は、いくつかのオプションがあります。まず、バインドマウントの使用方法を説明します 。現在、 dataというフォルダにいます 私のC:\ 。このフォルダの内容を一覧表示すると、5つのテキストファイルがあることがわかります。

このフォルダをコンテナで利用できるようにしたい場合は、コンテナの起動時にマウントできます。

先に進み、docker runを使用してコンテナを実行しましょう 。このコンテナをインタラクティブモードで実行してから、-Vを指定します 。ここでは、データフォルダーへのパスを入力し、その後にコロンを入力してから、このフォルダーをマウントするコンテナー内のパスを指定します。

このために、 C:\ shareddataを指定します フォルダ。次に、Windowsサーバーのコアイメージを指定し、最後に、コンテナー内に入ったらPowerShellを実行することを指定します。

docker run -it -v c:\Data:c:\shareddata microsoft/windowsservercore powershell

新しいコンテナの中にいるので、 C:\の内容を一覧表示すると 、 shareddataがあることがわかります フォルダ。

そのフォルダに移動して、内容を一覧表示しましょう。これが私のコンテナホストにある5つのテストファイルです。

このフォルダーにファイルを作成することもできます。このファイルは、他のコンテナーまたはコンテナーホストで使用できます。先に進み、新しいアイテムを実行して、 containertestというファイルを作成しましょう。 。

上記のように、新しいファイルがコンテナ内から作成されていることがわかります。次に、このコンテナを終了します。exitを実行してコンテナをシャットダウンします。 。

docker psを実行した場合 、現在実行中のコンテナがないことがわかります。

Dockerボリュームのデータの列挙

次に、コンテナホストからデータフォルダの内容を再度一覧表示します。

containertestというコンテナ内から作成された新しいファイルを確認できます。 。バインドマウントにはいくつかの制限された機能がありますが、ボリュームは私たちがやろうとしていることを達成するための好ましい方法です。ボリュームの使用を開始するには、同じコマンドを実行してコンテナーを起動できますが、今回はいくつかの小さな違いがあります。ボリュームを指定した場合、コンテナホストのファイルシステムのパスを使用する代わりに、 hostdataという単語を使用します。 作成して使用したいボリュームの名前として。

新しいコンテナ内から、 C:\の内容を一覧表示すると 、 shareddataというフォルダがあることがわかります。 。

そのフォルダの内容を一覧表示すると、空のボリュームを作成したため、現在は空です。それでは、 Ctrl-P-Qを実行してみましょう。 これにより、実行中のコンテナから削除されますが、バックグラウンドで実行し続けます。

コンテナホストから、docker volume lsを実行します 。これにより、このコンテナホストの現在のボリュームが一覧表示されます。 hostdataというボリュームがあります 、docker runで指定したときに作成されました コマンド。

docker psを実行した場合 実行中のコンテナが表示されます。

docker stopを使用してそのコンテナを停止します 。現在、実行中のコンテナはありません。

docker rmを実行して、停止したコンテナを削除します 。ボリュームをもう一度リストすると、 hostdata ボリュームは引き続き利用可能であり、新しいコンテナにマウントできます。

Dockerボリュームの作成

ボリュームを作成する別の方法は、docker volume createを使用することです。 指図。名前を指定しない場合、dockerはランダムな文字の長いリストである名前を付けます。それ以外の場合は、ここで名前を指定できます。このボリュームをlogdataと呼びます。 。これで、ボリュームを再度リストすると、リストにあることがわかります。

これを新しいコンテナにマウントします。 docker runを使用する 繰り返しますが、ボリュームには、作成したばかりのボリュームを指定して、 c:\ logdataにマウントします。 。

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

コンテナ内から、 logdataに移動します フォルダを作成し、いくつかのファイルを作成します。現在、このディレクトリにはファイルがないので、先に進んでファイルを作成してください。

PS> New-Item -Name Log1.txt -ItemType File
PS> New-Item -Name Log2.txt -ItemType File

これで、このディレクトリに2つのログファイルがあります。

Ctrl-P-Qを実行します 再度実行中にこのコンテナを終了します。そのコンテナの実行中に、同じボリュームがマウントされた新しいコンテナを起動します。

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

logdataでリストを実行する場合 新しいコンテナのフォルダには、共有されている2つのログファイルが表示されます。

ここで、このコンテナを終了します。実行中のコンテナが1つと、終了したコンテナが2つ残っているはずです。

次に、実行中のすべてのコンテナーを停止してから、docker rmを実行します。 終了したすべてのコンテナを削除します。

ボリュームを再度リストします。 logdata ボリュームは、将来のコンテナにマウントするために引き続き使用できます。

実行する場合は、docker volumeを実行します 、コマンドの使用法に関するヘルプが表示されます。

Dockerボリュームの検査

すでにcreateを見てきました 、それではinspectに移りましょう 。 docker volume inspectを実行した場合 logdataに対して ボリュームの場合、コンテナホスト上のボリュームへの物理パスであるマウントポイントを含む、そのボリュームのプロパティを返します。

Invoke-Itemを使用してそのフォルダを開きましょう 見てください。 logdataの下 フォルダには、 dataというフォルダがあります 。それを開くと、以前にコンテナから作成されたファイルを見ることができます。

Dockerボリュームの削除

ボリュームを削除するには、docker volume rmを実行します。 、その後に削除するボリュームの名前が続きます。

> docker volume rm logdata

ここで、ボリュームを一覧表示すると、 logdata もうありません。

最後に、pruneを使用できます 未使用のローカルボリュームをすべて削除します。これにより、実行中または停止中のコンテナにマウントされていないすべてのボリュームが削除されます。

このコマンドには注意が必要なので、これを実行することを確認するための警告とプロンプトが表示されます。 Yと入力すると Enterキーを押すと、削除されたボリュームが表示されます。

また、ボリュームをもう一度一覧表示すると、すべて削除されていることがわかります。

概要

このブログ投稿では、WindowsでのDockerボリュームの管理の概要を理解しているはずです。 Dockerは優れたコンテナープラットフォームです。 Windowsのサポートと、Dockerボリュームを管理するための新たなスキルにより、止められないでしょう!


Docker
  1. DockerコンテナでMySQLを実行する方法:シンプルでわかりやすいガイド

  2. LinuxでDockerコンテナを作成、一覧表示、削除する方法

  3. Dockerコンテナに静的IPを割り当てる方法

  1. DockerコンテナでMySQLを実行する方法

  2. DockerコンテナにSSHで接続する方法

  3. Dockerコンテナのタイムゾーンを変更する方法

  1. Dockerコンテナからカスタムイメージを作成する方法

  2. テスト用の MySQL Docker コンテナを作成する方法

  3. コンテナと Dockerfile から Docker イメージを作成する方法