Docker Desktop for Windowsを試してみる(1)WSL2とWindows Desktopのインストール
(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)WSL2とWindows Desktopのインストール
- (2)Swiftコンテナを作成してSwiftを動かしてみる
- (3)Windows10でWindowsとwsl2間でのファイルのコピー
- (4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
- (5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
- (6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
- (7)Windows10+WSL2+DockerDesktop + Ruby on Rails7をHerokuにデプロイ
- (8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
- (9)dbコンテナ内のpostgresqlの中身を確認する
- (10)ProgateのRubyonRails5学習レッスンの環境構築【2022年1月時点】
- (11)Windows10+WSL2+DockerDesktopでRuby on Rails7(TailwindCSS+importmap-rails)+PostgreSQLを環境構築してみる【2022年9月時点】
- 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に導入する
この後は、こちらのサイトに従ってやってみます。
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 してみると、やっと、うまくいったようです。疲れた。。。
以上で、
- WSL2のUbuntu 上で VSCode を起動し、
- そこから 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日
既に起動しているDocker Desktopは、Windowsの一番下の右側のタスクバーアイコンから、Docker Desktopのアイコンを右クリックして、「Quit Docker Desktop」をクリックします。
WSL2のUbuntuを停止するときは、PowerShellで以下のコマンド
wsl -l -v
wsl- t ubuntu-20.04
ディスカッション
コメント一覧
まだ、コメントがありません