【2024年最新】Windowに「Docker」の環境構築
✅ Windows10に「WSL2」を導入
⏭WSLと「仮想マシン プラットフォーム」を有効化する
-
Windowsのスタートボタンから「Windowsシステムツール」→「コントロールパネル」→「プログラム」→「Windowsの機能の有効化または無効化」の順で遷移する
-
「Windowsの機能の有効化または無効化」(以下)が表示される。
-
「Linux用Windowsサブシステム(WSL)」と「仮想マシン プラットフォーム」と「Windowsハイパーバイザープラットフォーム」にチェックを入れる
-
有効化を反映するため、PCの再起動を実施
⏭WSL2用Linuxカーネルをインストールする
-
「x64マシン用WSL2 Linuxカーネル更新プログラムパッケージ」をクリックして、インストーラをダウンロードする
※CPUが「Intel製」の場合 -
ダウンロードしたインストーラをダブルクリックして起動させる
-
インストーラが起動したら、画面の指示に従い「Next」をクリックしてインストールをすすめる
⏭WSL2を既定のバージョンで利用できるようにする
- コマンドプロンプトを起動し、以下のコマンド実行
wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
この操作を正しく終了しました。
⏭WSL2用Linuxディストリビューション(Ubuntu)をインストールする
-
Windowsの「スタートボタン」→「Microsoft Store」と進む
-
検索欄に「Ubuntu」と入力して検索を実行する
-
検索結果の中から「Ubuntu」を選択して、次の画面で「入手」をクリックする
※バージョン指定されていない「Ubuntu」で問題ない -
表示された画面で「開く」をクリックする
※インストールが開始されます。 -
Ubuntuの初期設定画面が表示される
-
画面に従い、ユーザとパスワードを入力し、Ubuntuのユーザを作成する。
Enter new UNIX username:ユーザ名は任意で問題ない。(例:ubuntu)
New password:任意のパスワード
Retype new password:同じパスワードをもう一度入力
⏭Windows Terminalで、より簡単にUbuntuを使えるようにする
-
Windowsの「スタートボタン」→「Microsoft Store」と進む
-
検索欄に「Windows Terminal」と入力して検索を実行する
-
「Windows Terminal」が見つかったら「入手」をクリックする
※インストールが始まります -
インストールが完了したら「開く」をクリックする
※Windows Terminalでは、以下のように下三角ボタンからUbuntuを起動させて、1つのタブとして利用が可能です。
✅「Docker Desktop for Windows」をインストール
-
Dockerの公式サイト(https://www.docker.com/)にアクセスし、画面右上部の「Get Started」をクリックする
-
遷移先の画面で「Download for Windows」をクリックする。
※「Docker Desktop for Windows」のインストーラがダウンロードされます。(基本的に最新バージョンで問題ない) -
ダウンロードしたらインストーラをダブルクリックしてインストールをすすめる
-
インストーラが起動したら、「OK」をクリックし画面の指示に従ってインストールをすすめる。
※バージョンによって、チェック項目数/名前が異なる場合がありますが、「Configuration」のチェックはそのままでかまいません。 -
Windowsからいったんログアウトするように言われるので、いったんログアウトして再度サインインすると完了です。
⏭DockerのWSL2の有効化
-
Windowsから「Docker Desktop」を起動し、「Start」→「Skip tuotrial」→「Settings(歯車アイコン)」と進め「Use the WSL 2 based engine」にチェックが入っていることを確認します。
※デフォルトの設定で、「Use the WSL 2 based engine」にはチェックが入っている。
-
Dockerの「WSL2の有効化」により、コマンドプロンプト / PowerShellからも、WSL2(Ubuntu)からもDockerが呼び出せるようになります。
※試しに両方の環境で、Dockerバージョンを確認すると同じバージョンになっているはず。
docker -v
✅WindowsPC側の設定
⏭Ubuntuディレクトリをネットワークドライブに割り当てておく
-
WSL2は、Windowsのエクスプローラから、「\wsl$」というディレクトリパスでアクセスすることができます。
-
WSL2のディレクトリに、ファイルを配置するときなどに便利などで、ドライブレター(Z:など)を割り当てておくとよい。
-
「\wsl$」ディレクトリを開くと「Ubuntu」というディレクトリが見えるので、右クリックして「ネットワークドライブの割り当て」から割り当てを設定します。
✅WSL2(Ubuntu)の設定
⏭DNS設定変更
-
WSL2(Ubuntu)において、初期設定のDNS設定だと、名前解決できないため、ホスト名での外部通信できない。(IPアドレスだと通信できる)
参考:http://pixelbeat.jp/post-823/
参考:https://fsms.hatenablog.com/entry/2020/10/17/123102
参考:https://learn.microsoft.com/ja-jp/windows/wsl/troubleshooting#wsl-has-no-network-connectivity-once-connected-to-a-vpn -
PC再起動するたびに、変更した内容が戻ってしまいます。
対象方法をは以下の手順です。
- 既存の「/etc/resolv.conf」のコピーを作成
sudo cp /etc/resolv.conf /etc/resolv.conf.new
- 現在の「/etc/resolv.conf」のシンボリックリンクを解除
sudo unlink /etc/resolv.conf
- コピーした「resolv.conf」を元に戻す
sudo mv /etc/resolv.conf.new /etc/resolv.conf
- 「sudo vi /etc/wsl.conf」を実行し、以下をファイルに追記
[network]
generateResolvConf=false
-
「sudo vi /etc/resolv.conf」を実行し、「nameserver」を 「8.8.8.8」 に書き換える(GoogleのDNSサーバに変更)
-
pingコマンドで疎通確認ができればOK
ping google.com
Discussion