Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

WSL で Docker プロジェクトを完全に操作するには、WSL 2 をインストールする必要があります。この記事の執筆時点では、その使用は Windows Insider プログラムへの参加の一部としてのみ可能です (WSL 2 はビルド 18932 以降で利用可能です)。 Docker Desktop のインストールと構成には Windows 10 Pro バージョンが必要であることも別途言及する価値があります。

最初のステップ

Insider プログラムに参加してアップデートをインストールした後、Linux ディストリビューション (この例では Ubuntu 18.04) と WSL 2 Tech Preview を備えた Docker Desktop をインストールする必要があります。

  1. Docker デスクトップ WSL 2 テクノロジー プレビュー
  2. Windows ストアからの Ubuntu 18.04

どちらの時点でも、インストールと構成のすべての手順に従います。

Ubuntu 18.04 ディストリビューションのインストール

Ubuntu 18.04 を実行する前に、PowerShell で XNUMX つのコマンドを実行して、Windows WSL と Windows 仮想マシン プラットフォームを有効にする必要があります。

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (コンピュータの再起動が必要です)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

その後、WSL v2 を使用することを確認する必要があります。 これを行うには、WSL または PowerShell ターミナルで次のコマンドを実行します。

  • wsl -l -v — 現在インストールされているバージョンを確認します。 1 の場合、リストのさらに下に移動します
  • wsl --set-version ubuntu 18.04 2 - バージョン 2 に更新するには
  • wsl -s ubuntu 18.04 — Ubuntu 18.04をデフォルトのディストリビューションとしてインストールします

これで、Ubuntu 18.04 を起動して構成できるようになります (ユーザー名とパスワードを指定します)。

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

インストールプロセス中は指示に従ってください。 インストール後および初回起動時に、Hyper-V を有効にするためにコンピューターを再起動する必要があります (これをサポートするには Windows 10 Pro が必要です)。

重要! Docker Desktop がファイアウォールによるブロックを報告した場合は、ウイルス対策設定に移動し、ファイアウォール ルールに次の変更を加えます (この例では、Kaspersky Total Security がウイルス対策として使用されています)。

  • [設定] -> [セキュリティ] -> [ファイアウォール] -> [パケット ルールの構成] -> [ローカル サービス (TCP)] -> [編集] に移動します。
  • ローカルポートのリストからポート 445 を削除します。
  • 保持します

Docker Desktop を起動した後、コンテキスト メニューから [WSL 2 Tech Preview] を選択します。

Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

開いたウィンドウで、「開始」ボタンをクリックします。

Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

Docker と docker-compose が WSL ディストリビューション内で使用できるようになりました。

重要! 更新された Docker Desktop には、設定ウィンドウ内に WSL を含むタブが追加されました。 そこでは WSL サポートが有効になります。

Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

重要! [WSL アクティブ化] チェックボックスに加えて、[リソース] -> [WSL 統合] タブで WSL ディストリビューションをアクティブ化する必要もあります。

Windows Subsystem for Linux (WSL) 上の Docker を使用した開発

起動する

予想外だったのは、Windows ユーザー ディレクトリにあるプロジェクト コンテナを持ち上げようとしたときに多くの問題が発生したことです。

bash スクリプトの起動に関連するさまざまな種類のエラー (通常、必要なライブラリやディストリビューションをインストールするためのコンテナを構築するときに始まります) や、Linux での開発によくあるその他の事柄を考慮して、プロジェクトを Ubuntu 18.04 のユーザー ディレクトリに直接配置することを検討しました。

.

前の問題の解決策から、Windows にインストールされた IDE を介してプロジェクト ファイルを操作する方法は次のとおりです。 「ベスト プラクティス」として、私自身にとっての選択肢は XNUMX つだけでした。VSCode を使用することです (ただし、私は PhpStorm のファンです)。

VSCodeをダウンロードしてインストールした後、必ず拡張機能にインストールしてください リモート開発拡張パック.

上記の拡張機能をインストールした後、コマンドを実行するだけです code . VSCode の実行時にプロジェクト ディレクトリ内にあります。

この例では、ブラウザ経由でコンテナにアクセスするには nginx が必要です。 経由でインストールします sudo apt-get install nginx それほど単純ではないことが判明しました。 まず、次のコマンドを実行して WSL ディストリビューションを更新する必要がありました。 sudo apt update && sudo apt dist-upgrade、その後にのみ nginx のインストールを開始します。

重要! すべてのローカル ドメインは、Linux ディストリビューションの /etc/hosts ファイルではなく (実際には存在しません)、Windows 32 の hosts ファイル (通常は C:WindowsSystem10driversetchosts にあります) に登録されます。

ソース

各ステップの詳細な説明は次のとおりです。

出所: habr.com

コメントを追加します