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

Windows上のDocker?今すぐ学習を始めましょうまたは…!

コンテナーとDockerを初めて使用し、主にWindowsで作業している場合は、ご馳走になります。この記事では、Docker DesktopforWindowsまたは単にDockerDesktopと呼ばれるものを使用してWindows10でDockerをセットアップする方法を学習します。 この記事で。

Docker Desktopは、Windows 10で簡単に使用できるようにパッケージ化されたDockerエンジンと管理クライアントです。この記事では、Docker Desktopをインストールし、最初のコンテナーをデプロイし、ホストとコンテナー間でデータを共有します。

Windows上のDockerの前提条件

これは、Windows上のDocker用のDockerDesktopのさまざまな手順を示すウォークスルー記事です。従うために、最初にいくつかの特定の要件があることを確認してください。

  • 800MB以上のデータをダウンロードするためのインターネット接続
  • リリース1703以降のPro、Enterprise、またはEducationエディションを実行しているWindows1064ビット。これは、Windows10でHyper-Vを実行するために必要です。
  • SLAT(ネストされたページング)互換性のあるCPU。 2008年頃以降のすべてのAMD/IntelプロセッサはSLAT互換です
  • 少なくとも4GBのRAM
  • BIOSハードウェア仮想化は仮想化テクノロジーと呼ばれることもあります またはVTx 。これを有効にして、有効として表示する必要があります 以下に示すように、タスクマネージャの[パフォーマンス]タブで。
Dockerデスクトップのダウンロードとインストール

まず、WindowsでDockerを実行するには、DockerDesktopをダウンロードしてインストールする必要があります。 DockerDesktopには2つのリリースがあります。安定リリースとテストリリース。

安定版リリースは四半期ごとにリリースされ、完全にテストされたアプリケーションを保証します。この記事では、安定版リリースを使用します。

警告:インストール時に、Docker Desktopは、Hyper-Vハイパーバイザーがまだインストールされていない場合はインストールするように求めます。そうすることで、Hyper-Vハイパーバイザーは、VirtualBox、VMWareなどのユーザーモードハイパーバイザーがゲストVMを実行するのを防ぎます。 VirtualBoxとVMWareのHyper-Vサポートは制限されていますが、今後提供される予定です。

また、Docker.comから直接Docker Desktopを手動でダウンロードするか、WindowsパッケージマネージャーのChocolateyを介して、ソースをダウンロードすることもできます。それぞれの方法について簡単に説明しましょう。

Docker.comから

Docker Desktopをdocker.comから直接ダウンロードするには、製品ページに移動し、アカウントを登録して、そこからダウンロードします。これは、アカウントを登録して本番環境でDockerを使用する場合に適しています。

ただし、Dockerを初めてテストする場合は、直接ダウンロードすることもできます。これははるかに簡単です。

EXEがダウンロードされたら、実行可能ファイルを実行し、すべてのデフォルトを受け入れるプロンプトをクリックします。

Linuxコンテナの代わりにWindowsコンテナを使用するかどうかを尋ねられたとき 、以下に示すように、しない チェックボックスを有効にします。この記事ではLinuxコンテナーを使用します。

インストールが完了したら、コンピュータを再起動します。

WindowsコンテナまたはLinuxコンテナを使用するオプションを選択すると、DockerはWindowsカーネルまたはLinuxカーネルにイメージをアタッチするように指示されます。以下に示すように、システムトレイのDockerアイコンを右クリックし、[Windowsコンテナに切り替える]を選択することで、インストール後いつでもこの設定を変更できます。

Chocolateyの使用

Docker Desktopをダウンロードしてインストールするもう1つのオプションは、Chocolateyを使用することです。 Chocolateyは、ダウンロード/インストールタスクの多くを自動化します。これを行うには、管理者としてコマンドラインコンソール(cmdまたはPowerShellのいずれか)を開き、以下のコマンドを実行してプログラムを一度にダウンロードしてインストールします。

choco install docker-desktop

完了したら、Windows10を再起動します。

ある時点でテストリリースを試してみたい場合は、choco install docker-desktop --preを実行してダウンロードしてインストールできます。 。

Dockerデスクトップのインストールの検証

インストールすると、DockerDesktopはWindows上でDockerを提供するサービスとして自動的に実行されます。再起動後にWindowsにログインすると、システムトレイに表示されます。しかし、実際にどのようにしてそれが機能していることを知っていますか?

Docker Desktopが正しく機能していることを確認するには、コマンドラインコンソールを開き、dockerを実行します。 指図。インストールがうまくいけば、Dockerコマンドリファレンスが表示されます。

最後に、Dockerに hello-worldというサンプルコンテナイメージをダウンロードして実行させます。 コマンドdocker run hello-worldを実行する 。すべてが順調であれば、以下のような出力が表示されます。

Dockerコンテナでコマンドを実行する

Docker Desktopがインストールされ、すべてが正常であることを確認しましたか?それで? WindowsでDockerを使い始めるために、Dockerコンテナーで実行する一般的なタスクの1つは、コマンドの実行です。 docker runを介して コマンドを使用すると、ホスト(Windows 10 PC)を介して実行中のコンテナーに直接コマンドを送信できます。

docker runを使用してコンテナでコマンドを実行するには 、最初に画像名を指定し、次にコマンドを指定します。開始するには、Dockerにコマンドhostnameを実行するように指示します アルパインと呼ばれるコンテナの内部 以下に示すように。

> docker run alpine hostname
b74ff46601af

高山がないので これで、コンピューター上のDockerイメージ。Windows上のDockerは、Docker Hubから小さなイメージをダウンロードし、そのイメージからコンテナーを起動し、コマンドをコンテナーに直接送信して、すべてを一挙にシャットダウンします。

コンテナを実行し続けたい場合は、-itを使用することもできます パラメータ。このパラメーターは、コマンドの実行後にコンテナーをフォアグラウンドで実行したままにして、コンテナーを「対話型モード」に保つようにDockerに指示します。次に、準備ができたターミナルプロンプトが表示されます。

> docker run -it alpine sh
/ #

ターミナルでの作業が終わったら、exitと入力します Windows10に戻ります。

コンテナー内のDockerホストからファイルにアクセスする

もう1つの一般的なタスクは、コンテナーからホストファイルにアクセスすることです。コンテナー内のホストファイルにアクセスするために、Windows上のDockerでは、デスクトップからフォルダーパスをリンクして、そのフォルダーをコンテナーに共有できます。このプロセスはバインディングと呼ばれます 。

バインディングを作成するには、ローカルドライブにフォルダーを作成します。この例では、 E:\を使用します 入力と呼びます 次に、 file.txtという名前の新しいテキストドキュメントを作成します フォルダ内。任意のパスとファイルを自由に使用してください。

ホストとコンテナ間で共有するフォルダを取得したら、Dockerは--mountを使用してフォルダをマウントする必要があります パラメータ。 --mount パラメータには3つの引数が必要です。マウントタイプ、ソースホストディレクトリパス、およびターゲットディレクトリパス。ターゲットパスは、コンテナ内のシンボリックリンクになります。

以下に、 E:\全体をマウントする例を示します。 Windows10ホスト内で/home / TESTとして表示されます Linuxコンテナ内のディレクトリ。

> docker run --mount type=bind,source="E:/",target=/home/TEST -it alpine

ホストフォルダーをマウントしようとすると、Docker Desktopは、以下に示すように、このドライブをDockerコンテナーと共有する許可を求めます。

file.txtを作成した場合 前述のようにWindows10フォルダー内のファイルで、cat /home/TEST/input/file.txtを実行します。 。コンテンツが表示されていることがわかります。

ここで、入力を削除します 作成したフォルダでcat ...を実行します もう一度コマンドします。シェルがファイルがもう存在しないことを報告するようになったことを確認します。

ネットワークポートのマッピング

知っておくべきもう1つの重要な概念は、Windows上のDockerがネットワーキングを処理する方法です。簡単な紹介として、ローカルホストからコンテナで実行されているWebサービスにアクセスするために必要なものを見てみましょう。

まず、サンプルWebページを実行するデモ画像を起動します。 dockersamples / static-siteというDockerイメージをダウンロードして実行します 。 docker container runを使用します そうするために。

次のコマンドは、一度に4つのアクションを実行します。

  • DockerHubからstatic-siteというDockerイメージをダウンロードします docker-samples 「ディレクトリ」
  • static-siteからコンテナインスタンスを起動します 画像
  • コンテナをターミナルのフォアグラウンドからすぐにデタッチします(—detach
  • 実行中のコンテナーのネットワークポートにWindows10ホストからアクセスできるようにします(—publish-all
docker container run --detach --publish-all dockersamples/static-site
## Alternate/shorthand syntax that does the same thing:
## docker container run -d -P dockersamples/static-site
## docker run -d -P dockersamples/static-site

実行されると、Dockerは以下に示すように起動されたコンテナIDを返します。

ネットワークポートの公開

--publish-allを使用してから パラメータ、ローカルホストポートがコンテナのネットワークスタックにマップされるようになりました。 docker psを使用できます すべての実行中のコンテナに割り当てられているポートを含む、すべての実行中のコンテナを一覧表示するサブコマンド。以下の例では、1つのコンテナがホストポート32777をコンテナポート80に、ホストポート32776をコンテナポート443にマッピングして実行しています。

Windows上のDockerは、--publish-allを使用するときに、コンテナーにランダムなポートを割り当てます 明示的に定義しない限り、パラメータ。

次に、Webブラウザーを開き、http:// localhost:32777またはDockerがdocker psによって出力されるポート80にマップするために割り当てたポートに移動します。 。すべてがうまくいけば、以下のWebページが表示されるはずです。

公開されたポートの変更

これで、Windows上のDockerで実行されているDockerコンテナーがあり、単純なWebページを提供しています。おめでとう!ただし、--publish-allを使用して、ランダムなポート選択に依存しない特定のポートバインディングを指定する必要があります。 。問題ない。 -pを使用します パラメータ。

まず、コンテナIDの一意の文字列を指定して、実行中のコンテナを停止します。このコンテナIDは、docker psを実行することで見つけることができます 。コンテナIDがわかったら、コンテナを停止して新しいコンテナを開始し、Dockerを指定して公開する特定のポートを割り当てます。

ポートを指定するための構文は、<external port>:<container port>です。 。公開するポートごとに、--publishを使用します または-p 以下に示すように、外部ポート番号とコンテナポート番号を切り替えます。

> docker stop f766
> docker run --detach -p 1337:80 dockersamples/static-site

コンテナIDを指定する場合は、一意になるのに十分なIDを入力するだけで済みます。単一のコンテナーのみを実行していて、そのIDがf766f4ac8d66bf7の場合 、fだけを含む任意の数の文字を使用してコンテナを識別できます 。要件は、入力するものが何であれ、単一のコンテナーを一意に識別できるようにすることです。

次に、Webブラウザーに移動して、localhost:1337に移動します。 。イメージを変更するのではなく、常にポート80でリッスンすることを忘れないでください。コンテナに接続できるようにするDocker構成のポート変換ルールを変更します。

すべてのコンテナを停止する

docker stopを使用する 、コンテナを停止することはできますが、一度に複数のコンテナを停止するにはどうすればよいですか?そのための1つの方法は、スペースで区切られた複数のコンテナーIDを提供することです。 IDがfd50b0a446e7の3つのコンテナを停止する方法の例を以下に示します。 、36ee57c3b7da 、および7c45664906ff.

> docker stop fd50 36ee 7c45

PowerShellでDockerコンテナを管理している場合は、ショートカットを使用してすべてのコンテナを停止することもできます。 docker ps -qを介してコンテナIDのリストをフィードします PowerShellのコマンド拡張を介してstopパラメーターに移動します docker stop (docker ps -q)

docker psと入力したときにコンテナがリストされていないことを確認して、すべてのコンテナが停止していることを確認します 。

クリーンアップ

いくつかのコンテナイメージをダウンロードし、現在停止しているいくつかのコンテナを実行しました。それらが停止していても、割り当てられたストレージはローカルホストディスクから削除されません。コンテナを削除してそのスペースを解放し、ワークスペースが乱雑にならないようにする必要があります。

単一のコンテナを削除するには、コンテナremove rmを使用します 以下のようなパラメータ。

> docker container rm <container ID>

または、停止したすべてのコンテナを削除するには、pruneを使用します 以下のパラメータ。

> docker container prune

Docker
  1. クラウドサーバーを使い始める

  2. Docker でコンテナに関する情報を取得する方法

  3. Perl を学んでいますが、Windows で 5.14 を入手するにはどうすればよいですか?

  1. LinuxでNetworkManagerを使い始める

  2. じゅじゅを始めるには?

  3. 最初のDockerWindowsServerコンテナの作成

  1. Linuxを始める10の方法

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

  3. Dockerの学習:Dockerコンテナを作成する方法