スポンサーリンク

Docker Desktop for Windowsを試してみる(1)WSL2とWindows Desktopのインストール

2022年1月22日

(2021/9/11追記)ググったり苦労したのですが、結局、後で、以下の本を読んで、この本の通りにやればよかったなあという結論になりました。

新機種発売直前のAppleWatchを衝動買いしたため、ちょっとSwift(iPhoneアプリ、AppleWatchアプリ作成のためのプログラミング言語)を触ってみたいと思いました。本当はMacパソコンを購入するべきなのですが、お金もmac miniを置くスペースもないので、WindowsパソコンにDocker+Ubuntuを入れて、Swiftを触ってみようと思いました。(2021年頃から、WindowsにSwiftを直接インストールできるようになったそうですが、まだ始まったばかりなので、今回は避けることにしました。)

そのために、Docker for Windowsを試してみたくなりました。

Windows10でDockerを扱う方法は4つくらいあるらしく、以下に、その歴史が語られています。

https://atmarkit.itmedia.co.jp/ait/articles/2011/20/news015.html
Windows 10 Homeでも使えて、インストールも超簡単な「Docker Desktop for Windows」登場
2020年11月20日

今回は、以下の記事に従って、Windows 10 Proに、Docker for Windowsをインストールしてみたいと思います。

https://qiita.com/jpnstrange/items/111c36ac98bf823245df

やってみようと思います。

スポンサードリンク

Docker Desktop for Windows目次

  1. (1)WSL2とWindows Desktopのインストール
  2. (2)Swiftコンテナを作成してSwiftを動かしてみる
  3. (3)Windows10でWindowsとwsl2間でのファイルのコピー
  4. (4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
  5. (5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
  6. (6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
  7. (7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイ
  8. (8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
  9. (9)dbコンテナ内のpostgresqlの中身を確認する
  10. (10)ProgateのRubyonRails5学習レッスンの環境構築【2022年1月時点】
  11. (11)Windows10+WSL2+DockerDesktopでRuby on Rails7(TailwindCSS+importmap-rails)+PostgreSQLを環境構築してみる【2022年9月時点】
  12. Windows10+WSL2(Ubuntu20.02)でRails7+tailwindcss+jsbundling-rails環境構築【2022年9月時点】

開発環境

Windows 10 Pro 1909

今回構築した環境

WindowsでDockerを利用する方法は4つくらいあるらしいのですが、今回は、『WSL2 + Windows Docker Desktop』のインストールを行いました。

Hyper-V を有効化
Linux用Windowsサブシステム を有効化
Windows Docker Desktop 4.0.0

Hyper-Vを有効にする

Windowsの画面左下の「スタート」ボタン > 「Windowsシステムツール」 > 「コントロールパネル」

「プログラム」

「プログラムと機能」の「Windowsの機能の有効化または無効化」

以下のような画面になるので、

「Hyper-V」の左横のチェックボックスを ON にして、OK をクリックします。

1分くらいでHyper-V が有効化されました。

コンピュータを電源が切れる状態にしてから、今すぐ再起動 をクリックします。

Dockerのダウンロード

Windowsを再起動後、以下からDocker Desktop for Windowsをクリックしてダウンロードします。

ダウンロードに2分くらいかかりました。

ダウンロードしたファイルをダブルクリックして、Dockerをインストールします。

OK をクリックすると、インストールが始まります。

3分くらいかかりました。 Close and restart をクリックして、パソコンを再起動します。

パソコンを再起動後の画面は、以下のようになりました。

Acceptを押すと、Dockerが起動しましたが、なんだかいきなりエラーが発生しました。

とりあえず、 続行 をクリックしました。

上記のように言われるので、リンクをクリックして、WSL2のインストールを行います。

再度、Docker Desktopを開きます。

うまくいかないので、とりあえず、パソコンを再起動してみます。

WSL2をインストールしてから、またパソコンを再起動

すると、ようやくDockerが動き始めたようです。

チュートリアルをやってみます

右側のPowerShellに、以下を入力してみます。

docker --version
docker-compose --version

青いところの右側の矢印の部分をクリックすると、右側のpowershellに青い部分の中身が反映されて、なんだか、コンテナ?がインストール?されたみたいです。Next Stepをクリックして次に進みます。

また矢印の部分をクリックすると、powershellの中身がガリガリ動き出しました。何をしているのかな???

Next Stepの後、下図の矢印の部分をクリックして、docker run してみます。

Next Stepを押していくと、次のようになります。

Dockerをインストールすることはできたようですが、この後が全くよくわかりません。

Ubuntuのコンテナを作って、その中でSwiftプログラミングをしてみたいのですが、、、

Ubuntu20.04をWSL2に導入する

この後は、こちらのサイトに従ってやってみます。

https://qiita.com/EBIHARA_kenji/items/12c7a452429d79006450

WSL2にUbuntu20.04を導入します。自分でも何を言っているのかよくわかりませんが、以下のように、「スタート」>「Microsoft Store」をクリックします。

右上の「検索」をクリックして、

検索窓に、 ubuntu と入れて、Enterを押します

以下のような画面になるので、『Ubuntu 20.04 LTS』を選択して、

入手 をクリックして、

username と passwordを設定(2回)すると、インストールが完了します。

Windows10にVisualStudioCodeをインストールして、拡張機能Remote-WSLを追加する

私は既にインストール済みでしたが、Windows用VisualStudioCodeは https://code.visualstudio.com/download からダウンロードしてインストールすることができます。

インストール後、VisualStudioCodeを起動して、拡張機能から、wsl で検索して、以下の拡張機能をインストールします。

拡張機能をインストールしたら、VisualStudioCodeをいったん閉じます。

UbuntuからVSCodeを起動する

Windowsの『スタート』>『Ubuntu 』をクリックします。

出てくるターミナル画面に、以下を入力します。

mkdir sample
cd sample
code .

いきなり以下のような画面が立ち上がるので、『アクセスを許可する』をクリックします。

次の画面でも、チェックボックスをONにして、Yesの青い方をクリックします。

Ctrl+@ でターミナル画面を出すと、以下のようになりました。

なんか一瞬、VSCodeの右下のあたりに、『WSL1を使ってるよ、TSL2を推奨するよ』みたいな警告が出たのですが、すぐに消えてしまいました。見なかったことにします。。。(WSL2のはずなんだけど、、、)

WSL1が入っていたらしいので、WSL2にするように努力してみる

ここで、ターミナル画面に

docker version

と入れると、以下のようなエラーが出てきました。

そのエラーのリンク https://docs.docker.com/desktop/windows/wsl/ をクリックすると、以下のように書かれていました。

https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#step-4—download-the-linux-kernel-update-package から、WSL2用Linuxカーネルのインストールを行います。

なんか、過去にインストールしているっぽいのですが、、、とりあえず、ダブルクリックして、インストールしてみます。

やはり、先ほどのものだったみたいです。

手元のPowerShellで、wsl –list –verbose と入力してみると、Ubuntu-20.04はなんとWSL1 でした。(WSL2でなかった、、、)

もう一度、 ttps://docs.microsoft.com/ja-jp/windows/wsl/install-win10#step-4—download-the-linux-kernel-update-package かを見ると、『 インストールが完了したら、次の手順に進み、新しい Linux ディストリビューションをインストールする際の既定のバージョンとして WSL 2 を設定します。 』だそうです。

WindowsのPowerShellを起動して、以下を入力します。

wsl --set-default-version 2

これでもダメみたいなので、いったん、『アプリと機能』から、Ubuntu 20.04 LTSをアンインストールします。順番間違えました。。。


(2021/9/12追記)実は、Windowsのコマンドプロンプトで、 wsl.exe –set-version Ubuntu-20.04 2 とすれば、Ubuntu-20.04はWSL1からWSL2にバージョンアップできたそうです。


Ubuntuをアンインストール後、再度、Microsoft Storeから、Ubuntu 20.04 LTSをインストールします。

usernameとpasswordを設定して、docker versionすると、今度は以下のエラー。疲れてきた。。。

エラーコメント通りに、https://docs.docker.com/desktop/windows/wsl/ を読んでみます。すると、

Settings > Resources > WSL Integration でほにゃららと書いてあったので、Docker Desktopを起動し、 Settings > Resources > WSL Integration へ行くと、以下のようになっていました。

そこで、Ubuntu 20.04をONにして、Apply and Restart をクリックしてみました。

Ubuntuのターミナル画面を起動して、docker versionすると、半分うまくいっているようなうまくいっていないような感じになりました。

そこで、再度、Ubuntu 20.04のターミナル画面で、以下を入力します。

mkdir sample
cd sample
code .

すると、VisualStudioCodeが開きます。VisualStudioCodeのターミナル画面で、 docker version してみると、やっと、うまくいったようです。疲れた。。。

以上で、

  1. WSL2のUbuntu 上で VSCode を起動し、
  2. そこから Remote Containers で Docker を起動し接続することができた

そうです。

次は、Dockerのコンテナを作成します。やっぱり、Ubuntu 20.04 LTSのDockerコンテナを作ってみようと思います。

参考リンク

https://zenn.dev/rhene/articles/docker-desktop-for-windows-with-wsl2
WindowsでもサクサクDocker (Docker Desktop with WSL2)
2020.12.29

https://kb.seeck.jp/archives/16950
WSL バージョンを変更する方法
2020.09.16

wsl -l -v
wsl --set-version Ubuntu-20.04 2

https://www.kkaneko.jp/tools/vm/docker.html
Docker Desktop のインストール,Ubuntu 18.04 コンテナとイメージの作成(Windows 上)

https://codeaid.jp/blog/docker-windowswsl2/
Docker Desktop for WindowsをWSL2で使う
2021年8月13日

引用元:https://www.early2home.com/blog/os/windows/post-1987.html

既に起動しているDocker Desktopは、Windowsの一番下の右側のタスクバーアイコンから、Docker Desktopのアイコンを右クリックして、「Quit Docker Desktop」をクリックします。

WSL2のUbuntuを停止するときは、PowerShellで以下のコマンド

wsl -l -v
wsl- t ubuntu-20.04

Docker Desktop for Windows目次

  1. Docker Desktop for Windowsを試してみる(1)WSL2とWindows Desktopのインストール
  2. Docker Desktop for Windowsを試してみる(2)Swiftコンテナを作成してSwiftを動かしてみる
  3. Docker Desktop for Windowsを試してみる(3)Windows10でWindowsとwsl2間でのファイルのコピー
  4. Docker Desktop for Windowsを試してみる(4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる

スポンサーリンク

Docker

Posted by twosquirrel