チラシの裏からうっすら見える外枠の外のメモ書き

新聞に挟まってる硬い紙のチラシの裏からうっすら見える外枠の外に走り書きされたようなものです。思いついたときにふらふらと。

WSL 2に入れたRootless Dockerをアンインストールする

前回の記事でWSL 2にRootless Dockerを入れました。

k-hyoda.hatenablog.com

ただ、コンテナからインターネットに接続できないという問題が残っていて実用的じゃないなと思ったのでアンインストール方法を記載しておきます。

目標は、上の記事を適用する前の段階にすることです。

やること

  • Rootless Dockerをアンインストールする
  • Genieをアンインストールする

具体的な手順

  1. Rootless Dockerを停止する
  2. .bashrcからRootless Dockerの設定を消す
  3. Rootless Dockerをアンインストールする
  4. Genieの自動起動設定を消す
  5. Genieをアンインストールする
  6. dotnet-runtime-3.1をアンインストールする
  7. daemonize/dbus/policykit-1をアンインストールする
  8. WSL 2を再起動する

手順

1. Rootless Dockerを停止する

次のコマンドでRootless Dockerを停止し、自動起動しないようにします。

systemctl --user stop docker
systemctl --user disable docker

2. .bashrcからRootless Dockerの設定を消す

Rootless Dockerの設定が~/.bashrcに記載されているので、次の内容を消します。

export DOCKER_HOST=unix:///run/user/1000/docker.sock

その後、ターミナルを再起動します。

3. Rootless Dockerをアンインストールする

Rootless Dockerをアンインストールします。アンインストール方法は以下のGitHubのIssueコメントを参考にしました。 github.com

rootlesskit rm -rf ~/.local/share/docker
cd ~/bin
rm -f *docker* *containerd* *runc* *rootlesskit* *vpnkit*

4. Genieの自動起動設定を消す

再び~/.bashrcを開き、Genieの自動起動設定を消します。次の内容を消してください。

if [ "`ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'`" != "1" ]; then
   genie -s
fi

また、getty@tty1サービスを有効化しておきます。(必要ないかもしれません)

そして再度ターミナルを再起動します。

5. Genieをアンインストールする

Genieを次のコマンドでアンインストールします。

sudo apt purge systemd-genie

そしてGenieをインストールするときに使ったスクリプトでインストールしているファイルを消します。

sudo apt-key del 95370CBB
sudo rm /etc/apt/sources.list.d/arkane-systems_wsl-translinux.list
sudo apt update

6. dotnet-runtime-3.1をアンインストールする

Genieの依存パッケージの1つである.NETのランタイムも削除します。次のコマンドでdotnet-runtime-3.1をアンインストールします。

sudo apt purge dotnet-runtime-3.1

また、不要なdpkgも削除します。

sudo dpkg -r packages-microsoft-prod
sudo apt update

7. daemonize/dbus/policykit-1をアンインストールする

最後に、残りのGenieの依存パッケージdaemonize/dbus/policykit-1をアンインストールします。 私の環境ではdaemonizeだけインストールしたので、それを消します。

sudo apt purge daemonize

8. WSL 2を再起動する

このままではWSL 2にGenieの設定が残っているようなので、PowerShellからWSL 2を再起動します。 以下のコマンドをPowerShellに入れて、ディストリビューションの名前を確認します。

wsl -l

すると、次のように表示されると思います(Ubuntu-20.04のところは人それぞれです)。

Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04 (既定)

このときのUbuntu-20.04を次のコマンドの引数として使用します。こんな感じです。

wsl -t Ubuntu-20.04

これでWSL 2は停止します。再びWSL 2を開けば自動的に起動します。

最後に

これでアンインストール作業は終了です。Rootless Dockerをインストールする前の状態に戻ったと思います。

また、ここではapt-transport-httpsはアンインストールしませんでしたが、必要に応じてアンインストールしていいと思います。