
wsl2にRockyLinux9をインストールしてpodman環境構築
つい最近まで知りませんでしたが、wsl2環境は任意のディストリビューションをインポートして使い分けられるそうです。なんでこんな大事なことをこれまで調べてこなかったのか。。
ということで、今のwsl2環境にrockylinux9をインストールしてpodmanでいろいろ遊べる環境を作ります。
まず現環境は以下です。
windows 10
wsl2
Ubuntu 20.04.6 LTS
作業後、新環境は以下になりました
windows 10
wsl2
Ubuntu 20.04.6 LTS
Rockey linux 9.1 ★追加!
以下のページを参考にrockeylinux9のイメージファイルを
https://dl.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-Container-Base.latest.x86_64.tar.xz
からダウンロードします。
ダウンロードしたtar.xzファイルは7zip等を利用してtarファイルに解凍します。このtarファイルはダウンロードディレクトリに置いておきます。
次に、powershellを起動してwindowsのファイルエクスプローラー上でrockylinux9のファイルシステムを配置するディレクトリを作成します。
mkdir C:\Users\ユーザ名\AppData\RockyLinux9
ここまでくれば準備完了。power shellから以下のコマンドを実行してrockylinux9をwsl2にインポートします。
wsl --import rockylinux9 C:\Users\ユーザ名\AppData\RockyLinux9 C:\Users\ユーザ名\Downloads\Rocky-9-Container-Base.latest.x86_64.tar --version 2
この状態でwslコマンドを実行するとrockylinux9ディストリビューションが認識されています。
PS > wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
rockylinux9 Stopped 2
デフォルトのディストリビューションをUbuntuから変更する場合は以下のコマンドを実行します。
PS > wsl --set-default rockylinux9
PS > wsl -l -v
NAME STATE VERSION
* rockylinux9 Stopped 2
Ubuntu-20.04 Running 2
rockylinux9を起動します。
PS > wsl -d rockylinux9
これでrockylinux9が利用できる状態になりました。デフォルトを変更した場合、windowsの検索窓からwslと検索して実行すれば、rockyにログインできます。
素の状態だとコマンドがまともに入っていないため、以下を実行すればある程度のコマンドが利用できる状態になります。お好みでどうぞ。
dnf update
# epelリポジトリ追加
dnf install epel-release
dnf config-manager --set-enabled crb
# よく使うコマンドのインストール
dnf install wget sysstat jq zip bind-utils procps which pip git vim
# systemdでルートプロセス起動※shutdown必要
cat <<EOL >> /etc/wsl.conf
[boot]
systemd=true
EOL
最後に、podmanをインストールします。appstreamに存在するため、dnfコマンドでインストールできます。とても簡単ですね!
dnf info podman
dnf install podman
ためしにnginxコンテナを起動してみます。
[root@LAPTOP-UTFIMSPL ~]# podman run nginx
✔ docker.io/library/nginx:latest
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob 9862f2ee2e8c done
Copying blob 7f7f30930c6b done
Copying blob e1eeb0f1c06b done
Copying blob f1f26f570256 done
Copying blob 2836b727df80 done
Copying blob 86b2457cc2b0 done
Copying config 080ed0ed83 done
Writing manifest to image destination
Storing signatures
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/04/02 13:23:49 [notice] 1#1: using the "epoll" event method
2023/04/02 13:23:49 [notice] 1#1: nginx/1.23.4
2023/04/02 13:23:49 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2023/04/02 13:23:49 [notice] 1#1: OS: Linux 5.15.90.1-microsoft-standard-WSL2
2023/04/02 13:23:49 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/04/02 13:23:49 [notice] 1#1: start worker processes
2023/04/02 13:23:49 [notice] 1#1: start worker process 24
2023/04/02 13:23:49 [notice] 1#1: start worker process 25
2023/04/02 13:23:49 [notice] 1#1: start worker process 26
2023/04/02 13:23:49 [notice] 1#1: start worker process 27
2023/04/02 13:23:49 [notice] 1#1: start worker process 28
2023/04/02 13:23:49 [notice] 1#1: start worker process 29
2023/04/02 13:23:49 [notice] 1#1: start worker process 30
2023/04/02 13:23:49 [notice] 1#1: start worker process 31
ばっちり起動しました!
2023/11/3追記
systemdがルートプロセスで起動しない場合、wslのバージョンが古い可能性があります。PowerShellより下記コマンドを実行して、wslを最新化してください(現時点のlatestは1.2.5)。
wsl --update
いいなと思ったら応援しよう!
