Windowsで「RedHat Linux」サーバを建てる

## この記事を書いた目的

Red Hat Enterprise Linux(RHEL)は、企業や研究機関で広く利用されている商用Linuxディストリビューションで、サーバ用途として安定性や長期サポートに優れており、実際の業務で運用されているケースも多いです。
そこでLinux初心者がWSL2(Windows Subsystem for Linux)でRHEL8を動作させる方法を学ぶために、自分の環境で構築した手順を記録し、記事にしました。
本記事では、Windows11のWSL2を活用し、Dockerを用いてRHEL8環境を構築する手順を紹介します。この方法を使えば、物理マシンへのインストールなしにRHELを試すことができ、私のような初学者でも手軽に環境を準備できます。

## はじめに

### 「Red Hat」って何?
Red Hat とはオープンソースソフトウェア(OSS)の技術サービスを提供している、アメリカのIT企業のこと。
その Red Hat 社が提供している企業向け Linux が Red Hat Enterprise Linux (RHEL)だ。
RHEL はサーバとして、企業や政府、研究機関等で幅広く利用されている。

### 「Red Hat」の利点

以下のような利点や特徴が挙げられる

* 高性能：大規模なワークロードに対応できる最適化
* 高い安定性：企業レベルの運用を支える堅牢な設計
* 大規模サーバに対応：データセンターやクラウド環境でも使用可能
* 長期サポート：10年以上のサポート期間があり、企業の運用に適している

RHELは大規模サーバに対応できる安定性と性能を持ち、
有償サポートの充実が最大の特徴です。
企業にとっては、セキュリティの保証やサポートの継続性が重要となるため、
商用環境ではRHELが高い信頼を得ている。

### 環境
* Windows 11 Home 23H2
* Ubuntu(今回はWSL環境でRHELを動かしたかった為)
参考文献：https://yadex205.hatenablog.jp/entry/2022/04/17/014309

* Docker Desktop

## 手順

### WSL2 で Ubuntu 環境に入る

![S__185966599.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/f064c4cf-9a20-2845-dc65-b7bcb48a9c48.jpeg)

### Docker コンテナを作成、実行する

実行するコマンド
`docker run -t redhat/ubi8 bash ls /`

↑を実行すると、Red Hatの公式Universal Base Image(UBI)を使用してコンテナを作成し、動作を確認できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/0519ecfd-24d4-8b9c-81ae-d73f81aac0b9.png)

### Docker コンテナ のコンテナID を取得する

コンテナを選択すると、以下の画面が表示され、コンテナID (緑線箇所) の参照が可能です。
GUIを使用する場合、IDをコピーしておき、次の手順で手動入力してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/855fabad-9049-57c3-5a47-de55c176553e.png)

CLIで取得する場合は、以下コマンドを実行してください。
`dockerContainerID=$(docker container ls -a | grep -i redhat/ubi8 | awk '{print $1}')`
（どちらの方法でもOKです。）

### TAR ファイルを生成する

GUIでコンテナIDを確認した場合は、コピーしたIDを以下のコマンドで使用してください。
`docker export <コピーしたコンテナID> > /mnt/c/好きなディレクトリ名/rhel8.tar`

CLIで取得した場合は、そのまま以下のコマンドを実行してください。
`docker export $dockerContainerID > /mnt/c/好きなディレクトリ名/rhel8.tar`

↑を実行すると、Cドライブの直下に TAR ファイルが生成される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/dd222f6a-958f-cc90-780f-3f5299c1c0ac.png)

### コマンドプロンプトを開く

![S__185966600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/7cdbbbb3-98cb-255f-625f-1e6039b4eda2.jpeg)

### RHEL の置き場所となるディレクトリをCドライブ直下に作る

今回は、名前を`wslrhel8`として作成

### RHEL8 をインポートする

実行するコマンド
`wsl --import RHEL8 C:\wslrhel8 C:\先ほど作成したディレクトリ名\rhel8.tar`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/892aac10-c7a0-f54b-992c-8321ce1ac1b3.png)

↑を実行すると、先ほど作成したフォルダに RHE8 がインポートされる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/c190a2ca-b319-1778-1a15-ae530688d2e0.png)

### RHEL8 環境に入る

実行するコマンド
`wsl -d RHEL8`

### sudo をインストールする

実行するコマンド
`dnf install sudo`

↑を実行すると、sudo がインストールされる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920300/11a742d8-465f-4174-ca94-6abc0fc60d87.png)

## まとめ
### 感想

今回、Windows11のWSL2環境でRed Hat EnterPrise Linux8(RHEL8)をセットアップする手順を実践しました。DockerとWSL2を活用することで、手軽に環境を構築し、学習や検証を行えることが分かりました。
特に、Dockerを使ったイメージの取得やTARファイルのエクスポート・インポートは、RHEL環境の再現性を高める上で有効です。これらの手法を理解する事で、他のディストリビューションでも応用が利くため、Linuxの知識を広げる上でも貴重な経験となりました。

### 今後

今回の環境構築を基に、以下のようなステップに進む事で、よりRHELを深く学習できます。
1. RHELの基本操作を学ぶ
    ・ファイルディレクトリ管理
    ・ユーザ管理
    ・パッケージ管理
2. サーバ環境を構築する
    ・SSHサーバのセットアップ
    ・ApacheやNginxの導入
    ・MySQLやPostgreSQLのインストールと設定
    
## 参考文献

https://qiita.com/Nitabushi/items/795f5f25bbd3900ea706

https://zenn.dev/seiya0/articles/tech-docker-desktop-for-win-install

https://yadex205.hatenablog.jp/entry/2022/04/17/014309