LoginSignup
4
6

More than 1 year has passed since last update.

Docker Desktop for WindowsをやめてWSL2上のDocker Engineへ移行する

Posted at

はじめに

そろそろ移行するべ1と起動手順とかのスクリプト設定を自分で書いてみた。せっかくだから Qiita に投稿しようかなと思って検索したら、やはり皆さん同じことを考えているようで大体同じ感じでした。二番煎じなんだろうけど若干異なる部分もあえて投稿してみます。

なお、

  • WSL2 側のディストリビューションは Ubuntu 20.04
  • 自分はGUI操作を行わないので不要なので代替UIは不要
  • k8s も使わないのでk8sは不要

という感じです。

削除手順

Docker Desktop は普通にコントロールパネルから削除する。

WSL2 側に Docker Desktop が設定したと思われる docker グループが作成されていると思うが、これは後で使うのでそのまま残しておく。

$ cat /etc/group | grep ^docker
docker:x:1001:username

Docker Engine インストール

こちらも通常のUbuntuへのインストール手順で

起動設定

今現在の WSL2 は Systemd などからサービス起動が行われないので、シェル起動時に実行する。~/.bash_profile に記載したいが他のシステムとドットファイル郡を同じにしたいというのもあるので、WSL2 かどうかを確認し、Docker の PIDファイルが用意されていなければ起動するというようにした。

# WSL2 + Docker
if [[ "$(uname -a)" =~ ^Linux.*-microsoft-standard.*GNU\/Linux ]]; then
  if [ ! -f "/var/run/docker.pid" ]; then
    sudo /usr/sbin/service docker start
  fi
fi

これだけだと、sudo時にパスワードを聞かれるので使い勝手が悪い。

ここで、Docker Desktopが残してくれた docker ユーザーグループがあるので、dockerグループ(%docker)のみサービス起動のパスワードを聞かない(NOPASSWD)ようにsudoersに設定する。

$ sudo visudo -f /etc/sudoers.d/docker
%docker ALL=(ALL) NOPASSWD: /usr/sbin/service docker start

Docker Compose

Ubuntu の apt で入るものは古いので brew で入れる。Homebrew が入ってない人はまずそこから。

$ brew install docker-compose

ということで、自分が使う範囲ではOKになりました。


  1. Docker Desktopが有料化、2022年1月31日までが猶予期間 - Docker is Updating and Extending Our Product Subscriptions 

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6