LinuxとWindows用に別々の開発環境を維持することにうんざりしていませんか? 2つの異なるプラットフォームまたはアプリケーションを切り替えながら、同じマシンで作業したいですか? Windows Subsystem for Linux(WSL)DockerDesktopの組み合わせが必要な場合があります。
DockerとWSL2の統合により、パフォーマンスが大幅に向上し、リソース割り当てが最適化されました。つまり、WSL Dockerの統合が便利であるだけでなく、開発環境もより高速になる可能性があります!
このチュートリアルでは、WindowsマシンでWSL2を使用してDockerDesktopをセットアップする方法を段階的に学習します。これで、WSL2に基づくDockerDesktopがインストールおよび構成されます。
まだ興味がある?始めましょう!
この記事は、ステップバイステップのチュートリアルになります。フォローする場合は、次のものがあることを確認してください。
- Windows 10 64ビットHome、Pro、Enterprise、またはEducationバージョン1903(ビルド18362以降)を搭載したコンピューター。このチュートリアルでは、Windows1064ビットエンタープライズを使用します。
- お使いのコンピューターには既にWSL2がインストールされているはずです。そうでない場合は、Windows10用WindowsSubsystem for Linuxインストールガイドに従って、要件としてWSL2をインストールしてください。このチュートリアルではLinuxディストリビューションは必要ないため、この手順をスキップしてLinuxディストリビューションをインストールできます。
Dockerデスクトップのインストール
WSL内でDockerコンテナを実行するには、明らかに最初にDockerをインストールする必要があります。ほんの数ステップで、Docker Desktopをコンピューターにインストールし、実行することができます。そして、コンテナ化されたアプリケーションをすぐに実行できるようになります。
以下の手順に従って、DockerDesktopをインストールします。
1. Webブラウザーを開き、DockerDesktopインストーラーをマシンにダウンロードします。この記事の執筆時点で、バージョン3.3.3のインストーラーのサイズは約540MBです。
2.次に、 Docker Desktop Installer.exe
を見つけてダブルクリックします。 ダウンロードしたインストーラーファイル。これを行うと、DockerDesktopインストールウィザードが起動します。
3.構成について ページで、WSL2に必要なWindowsコンポーネントをインストールするを維持します チェックボックスをオンにします。このオプションにより、インストーラーはWSL2でDockerを実行するために必要なコンポーネントをインストールします。
デスクトップにショートカットを追加のチェックを外すか、オンのままにします お好みに応じてボックス。この例では、チェックボックスをオンのままにします。選択したら、[ OK]をクリックします 。
次に、ウィザードはDockerDesktopのインストールに進みます。
4.インストールの最後に、インストールが成功しましたというメッセージが画面に表示されます。 インストールを完了するには、Windowsを再起動する必要があります。 閉じて再起動をクリックします 。
Docker DesktopWSL2バックエンドの検証
Docker Desktopをインストールしたので、正しくインストールされ、DockerがWSL2バックエンドを使用しているかどうかをどのようにして知ることができますか? DockerがWSL2を使用していることを確認および確認する方法はいくつかあります。
DockerデスクトップGUIの使用
Docker Desktopをインストールすると、Dockerダッシュボードと呼ばれるGUIベースの管理インターフェイスもインストールされます。 Dockerダッシュボードを使用すると、コマンドラインを使用せずに、コンテナー、イメージ、アプリケーション、およびDocker設定を1か所で管理できます。
Docker Desktop WSL2バックエンドがDockerDashboardを使用していることを確認するには、次の手順に従います。
1. スタート—>DockerデスクトップをクリックしてDockerデスクトップを起動します 。
Docker Desktopが起動すると、デスクトップの右下隅に Linux ContainersWSL2バックエンドが起動していますというトースト通知が表示されます。 。このメッセージは、DockerがWSL2を使用していることを示しています。Dockerのセットアップはこれまでのところ良好です。
2.次に、Docker設定ページを開きます。これを行うには、設定をクリックします ボタン(歯車のアイコン)—>一般 。
一般の下 タブページで、WSL2ベースのエンジンを使用することを確認します。 ボックスにチェックがあります。
3.次に、DockerのWSL 2統合ステータスが有効になっていることを確認するには、リソースをクリックします。 タブをクリックし、デフォルトのWSLディストリビューションとの統合を有効にする チェックがあります。 WSL統合により、DockerにアクセスするWSL2ディストリビューションを構成できます。
この時点では、まだWSL 2にLinuxディストリビューションをインストールしていないため、リストにWSL2ディストリビューションは表示されません。
WSLコマンドラインツールの使用
DockerがWSL2バックエンドを使用していることを確認する別の方法は、コマンドラインを使用することです。具体的には、 wsl
を実行します。 指図。 wsl
コマンドラインツールは、WSLでディストリビューションを管理するための事実上のツールであり、CMDプロンプトシェルとPowerShellの両方で機能します。
wsl
を使用してDockerDesktopWSL2バックエンドを確認するには 、次の手順に従ってください。
1.選択したコマンドシェル(PowerShellまたはCMD)を開きます。この例では、WindowsPowerShellを使用します。
2. wsl
を実行します 以下のコマンドを使用して、既存のすべてのWSLディストリビューションを一覧表示します。 -l </ code> 引数は
wsl
に指示します すべてのディストリビューションを一覧表示します。 -v
引数を指定すると、出力が冗長になります。これには、ディストリビューションのWSLバージョンが含まれます。
wsl.exe -l -v
以下に示すように、2つのディストリビューションがWSL 2で実行されています。これは、DockerDesktopとWSL2バックエンドが正常にインストールされたことを示しています。
docker-desktopディストリビューションは、仮想化の観点から、Dockerのメイン仮想マシン(ブートストラップ)です。一方、docker-desktop-dataディストリビューションは、Dockerがコンテナーやイメージなどのデータを格納するために使用するものです。
WSLでのDockerコンテナの実行
Docker Desktopをインストールしたので、Dockerはあまり機能していません。今がそれを使う時です!開始する簡単な方法は、DockerHubと呼ばれる公式のDockerレジストリから既存のコンテナイメージをダウンロードすることです。
この例では、NGINXというDockerコンテナをダウンロードして実行します。 NGINXは、いくつか例を挙げると、Webサーバー、ロードバランサー、メディアストリーミングなどのさまざまなサービスをホストできるオープンソースソフトウェアです。
いくつかのDockerコマンドを使用すると、すぐにNGINXのインスタンスを実行できます。これを行うには、以下の手順に従います。
注:このチュートリアルでは、Dockerコマンドの実行について詳しく説明していません。 Dockerコマンドの詳細については、Dockerコマンドラインのドキュメントページにアクセスしてください。
1.お好みのコマンドラインツール(PowerShellまたはCMD)を開きます。この例では、WindowsPowerShellを使用しています。
2. NGINXをダウンロードするには、 docker pull
を実行します 以下のコマンド。このコマンドは、以下に示すように、DockerレジストリからNGINXイメージをダウンロードまたはプルします。
# Pulls the docker Images from docker registry to your local machine.
docker pull nginx
以下のスクリーンショットは、DockerHubからイメージをプルしたときに期待される結果を示しています。
3.次に、以下のコマンドを実行してイメージをダウンロードしたことを確認し、コンピューターで使用可能なすべてのイメージを一覧表示します。
docker images
以下に示すように、DockerHubからダウンロードしたイメージであるDockerイメージが1つあります。
4.次に、 docker run
を呼び出します。 ダウンロードしたNGINXDockerイメージに基づいて新しいコンテナを作成するコマンド。
# Run a new docker container called docker-nginx (--name)
# Map the local computer's port 80 to the container's port 80 (-p 80:80)
# In detached mode (-d)
# Using the nginx image
docker run --name docker-nginx -p 80:80 -d nginx
docker run
次に、コマンドは、作成したばかりのコンテナの一意のコンテナIDを返します。
5. NGINXコンテナが実行されたら、 HTTP:// localhost に移動して、NGINXWebインターフェースにアクセスできるかどうかを確認します。 Webブラウザを使用します。以下に示すように、同じメッセージが表示される場合は、NGINXDockerコンテナが正常に起動しています。
6.最後に、 docker stop
を実行して、コンテナーを停止します(コンテナーを実行する必要がなくなった場合)。 以下のコマンド。このコマンドは、コンテナインスタンスを正常に停止します。
# Stop the container with ID d775964bfc48. Make sure to change the container ID value to yours.
# Note: specifying the first 12 characters of the container ID is enough.
docker stop d775964bfc48
または、 docker stop
で名前を指定して、実行中のコンテナを停止することもできます。 指図。たとえば、docker-nginxという名前のDockerコンテナを停止するには、次のコマンドを実行します。 docker stop docker-nginx
関連:Docker Exec:Dockerでコマンドを実行するためのGotoコマンド
docker stop docker-nginx
このチュートリアルは、WSLでDockerをセットアップするプロセスを支援することを目的としています。 WSLを使用すると、開発ニーズに合わせて複数の環境を維持する必要がなくなります。
また、コンテナ化されたアプリケーションの実行を開始する方法も学びました。しかし、そこで止まらないでください。完全なラボ環境を構成する複数のコンテナ化されたアプリケーションを作成できます。データベースサーバー、Webサーバー、CI / CD(Jenkins)など。頑張ってください!