WSL2でDockerを動かしてみたメモ
こんにちわ。
今日は、WSL2でDockerを動かしてみました。
動かしたときの、メモです。(雑)
まず、WSL2の環境を整えていきたいと思います。
Ubuntuを入れてみたいと思います。
■参考にした記事
WSLをインストールしてみます。最初に、PowerShellで
wsl --install
と打ってみましたが、なんだかインストールされなかったので、
wsl --install -d Ubuntu
と打って、インストールしました。
確認します。
wsl -l -v NAME STATE VERSION * Ubuntu Running 1
WSL2ではなくWSLのようです。WSL2にしたいのでWSL2にします。
wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。 wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2
WSL2になったようです。
インストール時にWSL2になるようにするには、 下記コマンドを実行してデフォルト設定をしておかなければならなかったようです。
wsl --set-default-version 2 WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください この操作を正しく終了しました。
で、
wsl
と打ち、無事Ubuntuに入れることができました。
続いて、パッケージのダウンロード元を日本に変更しました。
# バックアップを取っておく sudo cp -Rp /etc/apt/sources.list /etc/apt/sources.list.org sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list sudo sed -i 's/\/\/us.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list sudo sed -i 's/\/\/fr.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
とりあえず下記コマンドでいろいろアプデしました。
sudo apt update sudo apt upgrade
WSL2はここまで。
systemdが使えないっぽいです。
sudo systemctl status System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
なので、systemdが使えるようにgenieを入れてみたいと思います。
■参考にした記事
最初にREADMEページを全部読んでください、とのこと。
'`ィ (゚д゚)/ (読めない)
UbuntuなのでDebianの部分を読んでみます。
いろいろパッケージをインストールしてくださいとのことなので、インストールします。
sudo apt install -y daemonize dbus gawk libc6 policykit-1 python3 python3-pip systemd systemd-container
wsl-translinux リポジトリからインストールしないといけないものもあるっぽいので、
参考ページに倣ってインストールします。
■参考にした記事
# rootになる sudo -s apt install lsb-release wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main EOF apt update apt upgrade apt autoremove # rootを抜ける exit
genieをインストールします。
sudo apt install -y systemd-genie
genieを、実行してみます。
genie -s
ぴえん、systemd-remount-fs.serviceとmultipathd.socketが失敗したようです。
下記記事を読んで、解決しようと思います。
■参考にした記事
rootパーティションラベルにcloudimg-rootfsを貼ります。
rootパーティションは/dev/sdbでしたので、
sudo e2label /dev/sdb cloudimg-rootfs sudo systemctl restart systemd-remount-fs.service
■参考にした記事
multipathd.socketは非対応らしいのでdisableします。
sudo systemctl disable multipathd.socket sudo systemctl restart multipathd.socket
statusを確認してみましょう。
sudo systemctl status
runnig、したっぽい?
ps aux
PID1がsystemdになったのでOKっぽい?
genieはここまで。
Dockerを入れていきます。
■参考にした記事
インストールのコマンドをそのまま参考。 インストールできたと思ったので、hello-worldしてみました。
docker run hello-world
Got permission denied while trying to connect to the Docker daemon socket と怒られました。
権限等を追加しました。
■参考にした記事
もう一回
docker run hello-world
しました。
hello-worldできました。
感想
いろいろ設定しないといけないので大変でした。
でも、調べながらでなんとかなりました!
終わり。