■ はじめに
https://dk521123.hatenablog.com/entry/2021/11/14/224428
で、以下のように説明した。 ~~~~ * WSLではsystemdがPID1で動いていないため、 systemctlなどのコマンド(e.g. sudo systemctl start docker)が使えない => 使用する場合は「Genie」を導入する必要がある ~~~~ そこで、今回は、Genie を導入して、systemctlを使えるようにし Docker/Docker composeを導入する
後日談
2024/03/10現在だと、もっといい方法がある。 後述「補足2:systemd の有効化」を参照。
目次
【1】genie 【2】前提条件 【3】構築手順 1)Genieのインストール 2)Docker インストール 3)Docker compose インストール
【1】genie
* cf. genie(ジニー) = 精霊 * WSL2 (Windows Subsystem for Linux)で systemdを起動するためのツール
補足1
https://dk521123.hatenablog.com/entry/2021/09/30/163020
で説明した「Genie」とは別物。
補足2:systemd の有効化
* Genie を入れなくても、以下で行える
https://dk521123.hatenablog.com/entry/2024/03/10/230329
# systemd 有効 echo -e "[boot]\nsystemd=true" | sudo tee /etc/wsl.conf # WSL再起動 wsl --shutdown wsl
【2】前提条件
* Linux 環境
Windows でまだ用意していない場合
https://dk521123.hatenablog.com/entry/2021/11/14/224428
# Use WSL2 wsl --set-default-version 2 # 確認 wsl --status # 使用可能な Linux ディストリビューションを一覧表示 # wsl --list --online wsl -l -o # Ubuntu をインストールする場合(今回は、Ubuntuを選択) wsl --install -d Ubuntu wsl --list --verbose
【3】構築手順
1)Genieのインストール
[1] リポジトリ設定を追加
sudo curl -s -o /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg sudo tee /etc/apt/sources.list.d/wsl-transdebian.list << _EOF_ > /dev/null 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_
[2] リポジトリ情報更新とインストール
# Genie install sudo apt update && sudo apt install -y systemd-genie
[3] Genieの初期設定
# Backup sudo cp /etc/genie.ini /etc/genie.ini.bak # Timeout 60sec sudo sed -i 's/systemd-timeout=240/systemd-timeout=60/g' /etc/genie.ini # ホスト名表示に-wslを追加されないように設定 sudo sed -i 's/update-hostname=true/update-hostname=false/g' /etc/genie.ini # cloudimg-rootfsエラーの設定 sudo e2label $(df / | awk '/\//{print $1}') cloudimg-rootfs # sshdエラー回避の設定 sudo ssh-keygen -A
[4] Genie起動
genie -s # 結構時間が掛かるかも。。。 # 「Waiting for systemd....!!!!!!」みたいに表示し、終わる
[5] サービス停止
sudo systemctl disable getty@tty1
[6] genieの自動起動設定
https://snowsystem.net/other/windows/wsl2-ubuntu-systemctl/
# WSL 起動時に Genie を自動起動 sudo vi /etc/wsl.conf ~~~~~~~~~~~~~ [boot] systemd=true ~~~~~~~~~~~~~ # コマンドプロンプト(Windows)側で以下のコマンドをWSLを再起動 # WSLを停止 wsl --shutdown # WSLを起動 wsl # systemdがPID 1で起動していることを確認 ps -p 1 PID TTY TIME CMD 1 ? 00:00:00 systemd
2)Docker インストール
[1] Dockerのリポジトリ追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
[2] Docker-CE インストール
sudo apt update && sudo apt -y install docker-ce
[3] Dockerに関する設定
# Setting for no-sudo sudo usermod -aG docker $USER # Docker demon starts sudo systemctl start docker # Docker demon 自動起動設定 sudo systemctl enable docker # 確認 sudo systemctl status docker
3)Docker compose インストール
* 以下の関連記事を参照のこと
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
参考文献
https://qiita.com/fjij/items/95e283ed2bff47a1a27c
関連記事
WSL2 ~ Docker Desktop / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000
WSL ~ Windows Terminal ~
https://dk521123.hatenablog.com/entry/2020/12/10/094125
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ docker-compose.yml ~
https://dk521123.hatenablog.com/entry/2020/12/18/152949
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
Docker compose ~ LocalStack/Glue4.0 ~
https://dk521123.hatenablog.com/entry/2023/03/25/021432
WindowsでAWS CLIを使うには
https://dk521123.hatenablog.com/entry/2020/12/01/000000
LocalStack ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/14/010524
LocalStack ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2019/12/16/231149
LocalStack ~ awscli-local ~
https://dk521123.hatenablog.com/entry/2020/12/16/211127
ps コマンド ~ プロセス一覧の表示 ~
https://dk521123.hatenablog.com/entry/2018/02/02/181500