はじめに
そろそろ移行するべ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になりました。
-
Docker Desktopが有料化、2022年1月31日までが猶予期間 - Docker is Updating and Extending Our Product Subscriptions ↩