今日は、Parallelsで作成済みのWindows10仮想マシンにDockerをインストールしたいと思います。
先日の投稿を見て頂いた方はご存知とは思いますが、当初はParallelsでUbuntu仮想マシンを作成し、そこにDockerをインストールして開発環境を構築しようとしておりました。もっと言うと、その環境のDockerへVSCodeの"Remote - Containers"拡張機能で接続してプログラミングする環境を構築したかったのです。
しかし、1つ勘違いしている事に気づいてしまいました。それは、"Remote-Containers"拡張機能で自分用の開発環境を構築するなら、Windows10またはmacOSにVSCodeとDockerを同居させてスタンドアロン環境にする方が一般的なのではないかという事に。色々調べている際、"Remote - Containers"拡張機能のデフォルトのリモート接続先がlocalhostだという事が分かった時に気づきました。
という事で、Windows10仮想マシン環境で一からやり直したいと思います。随分と遠回りになってしまった。
#環境周りの情報
以前の投稿に記載した内容と重複するが、再度おさらいしておきます。
母艦のMacはiMac(Retina 5K, 27-inch, 2019)の一番安い構成のもの。後付けでメモリを16GB×2枚追加して40GBにしてあります。その他の細かいスペックは割愛します。
- ホストOSは、macOS Monterey
- 仮想化環境ソフトは、Parallels Desktop 17 for Mac Pro Edition
- 仮想マシンの構成は、2CPU、8GBメモリ、256GBストレージ(128GBで十分かも)
- ゲストOSは、Windows10 Pro 64bitで、21H1適応済み
Parallels DesktopがPro Editionなのは、Windows10仮想マシンでDocker環境を構築するのに必要な機能がStandard Editionでは利用できなかった為。詳細は後述する。
#インストール手順
それではまず、ParallelsでWindows10仮想マシンを起動。
###Windowsの機能の有効化
コントロールパネルを開き、[プログラム]→[プログラムと機能]と開き、[Windowsの機能の有効化または無効化]リンクをクリック。
[Linux用Windowsサブシステム]と[仮想マシンプラットフォーム]にチェックを付けて[OK]ボタンをクリック。
「必要な変更が完了しました。」と表示されたら、[今すぐ再起動]ボタンをクリック。
###WSL2のアップデート
再起動が終わったら、WSL2(Windows Subsystem for Linux 2)のアップデートを行う。
まず、下記のURLへアクセスし、アップデートプログラムをダウンロードする。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
ダウンロードが終わったら、ファイルをダブルクリックし、インストーラーを起動する。
インストーラーが起動したら[Next]ボタンをクリックする。
アップデートが始まる。
アップデートが完了したら[Finish]ボタンをクリックする。
###Docker Desktop for Windowsのインストール
いよいよDocker本体のインストールをしていく。
まず、下記のURLへアクセスし、Docker Desktop for Windowsをダウンロードする。
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
ダウンロードが終わったら、ファイルをダブルクリックし、インストーラーを起動する。
Configuration画面が表示されるので、[OK]ボタンをクリックする。
インストールが開始する。
インストールが完了したら[Close]ボタンをクリックする。
###Docker Desktopの起動確認
デスクトップに作成されたDocker Desktopアイコンをダブルクリックし、Docker Desktopを起動してみる。
規約について同意を求められるので、同意するとDocker Desktopの画面が起動するが、Docker Engineの起動に失敗してしまう。
このエラーに関して、色々調べてみた結果、ParallelsのWindows10仮想マシンの構成画面より、ネストされた仮想化を有効にする必要がある事が判明。しかも、この機能はParallels DesktopのPro Editionじゃないと使用できない。仕方ないので、Pro Editionにアップグレード。
これが本投稿の冒頭で述べた「Parallels DesktopをPro Editionにしている」理由。
ネストされた仮想化を有効にするには、Parallels DesktopでWindows10仮想マシンの構成画面を開き、[ハードウェア]→[CPUおよびメモリ]の[詳細]ボタンをクリックし、[ネストされた仮想化を有効にする]にチェックを入れればよい。ハマりポイントなのでご注意を!
Windows10仮想マシンを起動し、気を取り直して、再度Docker Desktopを起動してみる。
今度は無事起動した。
初回起動ではチュートリアルを見るように促されるが、私はスキップした。見たい人はご自由にどうぞ。
Dockerの設定を確認してみる。画面上部の[⚙]マークをクリック。
下記赤枠項目は確認しておいた方が良いと思う。
項目の意味は以下の通り。
項目 | 意味 |
---|---|
Start Docker Desktop when you log in | DockerDesktopのスタートアップに登録するかどうか。これはどちらでも好きなようにどうぞ |
Use the WSL 2 based engine | DockerをWSL2ベースで使用するかどうか。これは基本的にONにする。昔はHyper-Vベースだったらしいが今はこちらが主流 |
Use Docker Compose V2 | バージョン2以降のDocker Composeを使用するかどうか。これは各自の状況に合わせてご自由にどうぞ |
一応、コマンドプロンプトを起動し、dockerコマンドとdocker composeコマンドでも動作確認してみる。
docker version
Client:
Cloud integration: v1.0.22
Version: 20.10.11
API version: 1.41
Go version: go1.16.10
Git commit: dea9396
Built: Thu Nov 18 00:42:51 2021
OS/Arch: windows/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.11
API version: 1.41 (minimum version 1.12)
Go version: go1.16.9
Git commit: 847da18
Built: Thu Nov 18 00:35:39 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker compose version
Docker Compose version v2.2.1
無事動作した。
お疲れ様でした!