Windows10でWSL2 + Podman環境作ってDocker runしたメモ
DockerDestopが有償化されましたね。
仕事で必要だったので、一旦私用PCに代替Dockerの環境を構築してみました。
かなりハマったのでメモ🥲
環境
・Windows 10 Pro(OSビルド:19044)
・CPU:Intel Core i5-10400 2.90GHz
・RAM:32.0GB
・自作PC(特に奇抜な構成はしてない)
Docker利用状況
・利用してない
いくつか方法はあるようだけど、
・minikubeを使う方法
・WSL2 + podman
の二つがありそうと思った。
minikubeはうまくいかなくて原因解決ができなかったので一旦やめてpodmanに切り替えた。
⇨結果、構築成功した
設定手順の参考にさせていただいたのが下の記事3つ
ちなみに自分はMacばっかりなのでWindowsは詳しくないので注意(◜௰◝)
(まちがってたらごめんね)
手順としては
- WSL上でUbuntuを動かす
- UbuntuにPodmanをインストールする
- Podman動作確認する
の3つになる。
まずWSL環境を作る。
WSLは1と2があって、2のまま作業していたら自分は後のPodmanの手順で失敗した。⇨エラー内容
なのでまずWSL2の環境を作る
以下の記事を参考にさせていただいた
Ubuntuの設定
Ubuntuは20.04 LTSをMicrosoftStoreで見つけてダウンロードした。
WSL2の設定が完了してれば、ダウンロード完了後にpower shellで以下のコマンドを叩くと、ちゃんとUbuntuが表示される
> wsl --list --verbose
このコマンドを打った結果WSLのバージョンが1だとダメ。
ちゃんとWSL2を設定して2にする
Ubuntuの初期設定とPodmanのインストール
RedHatさんの記事の中に必要なコマンドが書いてある。
「Add the Podman PPA and install Podman」
というところにコマンドが10個くらい列挙されているがそれを上から順番に全てUbuntu上で打っていく
コマンドを打っていたら下のようなエラーが出た
wget: unable to resolve host address ‘download.opensuse.org’
ネットワークがつながってないよ的なエラー
→こちらの記事を参照して解決した。
まずWindows PowerShellにてIPを確認し
> ipconfig.exe /all
Ubuntuにて、上で確認したDNSサーバーのIPを入れて以下のコマンド
$ sudo sh -c "echo 'nameserver 192.168.11.1' > /etc/resolv.conf"
これで解決した。
Podman動作確認
以下の観点を確認
・HelloWorld
・インターネット経由でちゃんとDockerimageを取れるか
・localhostでホストマシン(Windows)からアクセスできるか
まずはハロワ
$ podman run hello-world
OK?
なら次はnginxを試す
まずはUbuntu上でnginxを動かす
$ podman pull nginx
$ podman run -d -p 8080:80 --name test_nginx nginx
そしたらホストマシンのpowershellで
> curl http://localhost:8080
200 OKの返答メッセージが返って来ればOK
参考サイト
こちらの記事も参考になりそう