Rocky LinuxのDockerコンテナをSystemdで立ち上げてみた!

10月 11, 2023

ご無沙汰しております、saisaiです。仕事もプライベートも急激に忙しくなり投稿が遅れてしまいました…。


合間を縫って細々書いていきますので引き続きよろしくお願いいたします。


本日はインフラ界隈で噂のRocky Linuxを触ってみたいがためにコンテナを立ち上げてみましたので、手順を残しておこうと思います。


今回は、systemdで立ち上げてみましたのでsystemctlとか使ってRockey Linuxを操作したいぜ!って人に届いたらなと思っております!

Rocky Linuxとは

まずは軽くRocky Linuxについておさらいしておきます。


Rocky LinuxはRHELクローンのLinuxディストリビューションです。


RHELクローンのLinuxディストリビューションといえば代表的なのがCentOSでしょう。では、どうしてRocky Linuxがここ最近注目を集めるようになったのでしょうか。


要因としてはやはりCentOS Linux 8 のサポートが2021年末に終了するということでしょう。そこでユーザーはポストCentOSのディストリビューションを探すようになりRocky Linuxに白羽の矢が当たったといったところでしょうか。


Rocky Linuxはは、CentOSプロジェクトの創設者であるグレゴリー・クルツァー氏を中心として開発されており、2029年5月末までのサポートされる予定です。

コンテナを立ててみる

一通りおさらいしたところで実際にRockey Linuxのコンテナを立ててみましょう。


筆者は普段Amazon Linux2ばかり触っておりますので、冒頭にもある通り今回はsystemdで動作するRocky Linuxコンテナを起動します。


手順については公式docker hubリポジトリを参考にしております。ローカルマシンのOSはMacです。


まずはRocky LinuxのDockerイメージをリポジトリよりpullします。

docker pull rockylinux/rockylinux


イメージが用意できたらsystemdで起動するためのDockerfileを作成します。公式リポジトリの通り以下のように記述します。エラーを起こすファイルの削除やマウントボリュームの変更などsystemdで起動する上で必要な設定をしています。

FROM rockylinux/rockylinux:8.4
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]


続いて起動・停止・終了を簡略化するためにdocker-compose.yamlを用意します。80ポートもついでに開いておきましょう。

ersion: "3"

services:
  dcloud:
    build: ./
    ports:
      - "8080:80"
    privileged: true
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro

あとは普段通りdocker composeコマンドを使用してコンテナを立ち上げてください!

docker compose up -d

あとはコンテナに接続して色々遊んでみましょう!

まとめ

今回はRocky LinuxのDockerコンテナをsystemdで立ち上げてみました!


今後お世話になる可能性が高いディストリビューションなのでこれを機に触ってみるのもありなのかなと思いつつ、REHL完全クローンならそこまで違わないようなと思いつつ…。


どちらにせよ空のLinuxコンテナは作成して損はないので色々な開発に使用したいと思います!


最後まで読んでいただきありがとうございました!


↓オススメ教材

Docker

Posted by CY