MENU
アーカイブ
INGSTE YouTubeチャンネル

GUIなしイミュータブルLinux「openSUSE MicroOS」でPodmanコンテナを操作

Linuxを使っているとCLI環境(ターミナル上のコマンド)で操作する方が効率が上がる作業があることに気づきます。また、サーバーで利用されているLinuxは、マウスとウィンドウを使うGUI(グラフィカルユーザーインターフェース)がインストールされていないことが多いです。

ただ、そろそろコマンドだけでLinuxを使いたいと思っても、複雑そうに感じたり、そもそも何ができるのか分からないこともあります。

そこで今回は、GUIなしでLinuxをインストールし、例としてDocker互換のコンテナを動かす方法を解説します。安全にインストールするため、まず仮想マシンの作成方法を紹介します。

使用するのは「openSUSE MicroOS」というLinuxですが、これはイミュータブル(不変)OSと呼ばれるもので、OSを直接変更しにくく設計されています。これによりOS本体が壊れにくく実験的な操作を試すのに都合が良いです。

また、特にDockerのようなコンテナ動作と相性が良いため、実現できることの一例として取り上げます。本記事ではDocker互換で軽量な「Podman」を用います。Dockerの概要や基礎的な用語に関しては以下の記事を参照してください。

目次

VirtualBoxを準備する

MicroOSもそうですが、お使いのPCに何らかのOSを直接インストールするには、大切なデータを消さないよう注意して作業する必要があります。

そこで、便利なのが仮想マシン(VM)と呼ばれるもので、実際のPC上に仮想のPCを用意することができます。今回は仮想マシンを作成・管理するためにVirtualBoxを用います。この仮想環境にOSをインストールすれば、お使いのPCに影響を与えず様々な環境を使用できます。

VirtualBoxをインストールした実際のPCを「ホスト」、その上で動いている仮想マシンを「ゲスト」と呼びます

WindowsPC上でLinuxの仮想マシンを動かすなど、ホストとゲストでOSが異なっていても構いません

本記事ではWindows 11 と Ubuntu 24.04 LTSを例に、VirtualBoxのインストールを解説します。

VirtualBoxをダウンロード

VirtualBoxは以下の公式サイトからダウンロードできます。

https://www.virtualbox.org/wiki/Downloads

ページ内にある「VirtualBox Platform Packages」下の一覧から、お使いのPC(ホストPC)のOSに合わせてダウンロードしてください。Linuxの場合はディストリビューションやバージョンを更に選択します。

本記事では基本的な機能が利用できる「VirtualBox Platform Packages」を用いて解説します

拡張機能の「VirtualBox Extension Pack」は使用しません

VirtualBoxのインストール

ダウンロードしたファイルを使用してVirtualBoxをインストールしましょう。

Windows 11にインストール

公式サイトの[VirtualBox Platform Packages]にある[Windows hosts]をクリックしてダウンロードしたファイルをダブルクリックし実行します。

「アカウント制御」のメッセージが出るので許可して続行します。

インストーラーが開始するので[Next]で続行。

次に、ライセンス条項に同意するか尋ねられるので「I accept ~」を選ぶとインストールを続行できます。

以降は、標準的なインストールを行うかを尋ねられるので、そのまま[Next]で続行。

また、PCのネットが一時的に切断されるとのメッセージが出るので、問題なければ[Yes]をクリック。

VirtualBoxが依存する機能について提案が表示される場合は、そのまま[Yes]で続行。

ショートカットやファイルの関連付けについて尋ねられるので、好みに合わせて選択し[Next]をクリック。(本記事では、すべてにチェックを入れて解説します。)

この後、[Install]ボタンが表示されるのでクリックします。インストールが終わると以下の表示になるので、[Finish]ボタンで終了します。

Start Oracle VirtualBox にチェックを入れたままにしておくと、[Finish]ボタンを押した後に起動します
Ubuntu 24.04 LTSにインストール

[Linux distributions]をクリックするとLinuxの種類が表示されるので、Ubuntu向けのパッケージを選択します。

Linuxの場合、本記事ではホストPCにUbuntu 24.04 LTSを用いて解説しています。

ダウンロードが始まるのでファイルを保存します。ブラウザの設定よっては自動で[ダウンロード]などのフォルダ(ディレクトリ)に保存されます。

ファイルを右クリックし、[アプリセンター]を選びます。インストーラーが開いたら[インストール]をクリック。パスワードを尋ねられるので入力し続行します。

「潜在的に安全ではない」と表示されますが、VirtualBoxの公式サイトから入手したものなので問題なくインストールできます

[インストール]ボタンがグレーで[インストール済]に変わればインストール完了です。

openSUSE MicroOSの準備

MicroOSは、openSUSEの種類(ディストリビューション)の一つで、オープンソースで公開されています。そのため誰でも無料で利用することができます。

なお、ネット閲覧や文書作成などの一般的な目的で使う場合は、以下の記事にある「openSUSE Leap」が利用できます。

今回使用する「openSUSE MicroOS」は、GUIなしでインストールします。起動後は文字のみの画面が表示されます。

ISOイメージのダウンロード

さっそく、openSUSE の公式サイトにアクセスし、MicroOSのISOイメージを取得しましょう。

https://get.opensuse.org/ja/microos

矢印で示した、ページ内の[ダウンロード]タブを選び、[Intel/AMD 64 ビットプロセッサ]下の[ISO イメージ]右側の[ダウンロード]ボタンをクリックするとダウンロードが始まります。

最近用いられる[ARM 64](下図右側)のPC用でも動作しますが、本記事では従来のAMD64(x86_64)PCで解説しています。

VirtualBox(仮想マシン)にMicroOSをインストール

MicroOSのダウンロードが終了したら、VirtualBoxの仮想マシンにインストールしてみましょう。

VirtualBoxを起動し[新規]をクリックします。

下図の矢印で示した[VM名]は分かりやすく「MicroOS」と名付け、[ISOイメージ]にはダウンロードしたISOファイルを指定します。

[仮想ハードウェアを指定]をクリックするとメモリとCPUに関する設定が行えます。お使いのPC性能にもよりますが、可能であればメインメモリーは2048MB、CPU数は2とします。また、[EFIを使用]にチェックを入れておきます。

次に[仮想ハードディスクを指定]を選びます。こちらもお使いのPCのディスク容量によります。本記事の内容を試す場合は初期設定の8GBで行えます。

もし、MicroOSで他のことも試したくなる場合に備え、大きめのディスク容量を割り当てることも可能です。[完了]ボタンを押し設定を保存します。

完了すると、仮想マシン一覧に表示されます。一覧表示の画面になっていない場合は、矢印で示したように左側から仮想マシン一覧を選択できます。

次に今作った仮想マシンをクリックし、上部のアイコン[設定]をクリックします

設定で[基本]を選び[ネットワーク]をクリック。[NAT]となっている部分を[ブリッジアダプター]に変更し、右下の[OK]ボタンで保存します。

仮想マシン一覧表示になったら、上部のアイコンから[起動]を選択します。

最初に指定したMicroOSのISOイメージから起動します。一度画面上をクリックすると、操作できるようになるので、[Installation]が選択されていることを確認しエンターキーで続行します。

しばらくすると、言語設定画面に切り替わるので、インストール時に使用する言語とキーボードを選択します。

選択後、右下の[次へ](英語のままインストールする場合は[Next])をクリックで続行。

しばらくすると何をインストールするか選べるようになるので、[MicroOS コンテナホスト]を選択し[次へ]をクリック。

次にNTPサーバ設定画面になりますが、そのままにして[次へ]。

管理者である root のパスワードを決めましょう。確認のため2回同じパスワードを入力します。忘れないようにしてください。

パスワードは8文字以上、大小文字、数字、記号を混ぜて作成することが推奨されています

パスワードを2度入力後は[次へ]をクリック。

最終確認が表示されるので、そのまま右下の[インストール]をクリックします。もう一度確認されるので[インストールする]をクリックするとインストールが始まります。

インストールが終了すると自動的に再起動され、以下のログイン画面になります。下図の最後の行ではログインするユーザーを尋ねています。

ユーザー名は管理者である「 root 」、パスワードはインストール時に決めたものでログインします。

パスワードは入力しても何も表示されないので間違えないようにします。ログイン後は以下のように表示されます。

これで root 権限でログインできました。root はシステム管理者権限であり、基本的に何でも行うことができます。

MicroOSでのユーザー作成

root 権限でログインしていますが、Linuxでは普段の使用時、「一般ユーザー」でログインします。これは、何でもできる root だと重要なファイルも簡単に削除できてしまうからです。

普段使うユーザーを作成するには以下コマンドを実行します。「test」という名前のユーザーを作ってみましょう。

useradd -m test
成功時は何もメッセージが表示されない

作ったユーザー「test」にパスワードを作成します。半角英数字・記号で8文字以上のパスワードを決めてください。

以下のコマンドを実行すると、パスワードを尋ねられるので決めたパスワードを入力しエンターキーで決定します。確認のため2度尋ねられます。

passwd test

[Ctrl]+[D]キーで現在ログインしている root からログアウトし、今作ったユーザー名とパスワードでログインしましょう。

rootをログアウトし、一般ユーザー「test」でログイン

以降の作業は、この一般ユーザーで行います。

SSH接続で快適操作

ところで、本記事のコマンドをVirtualBox上のMicroOSにコピペしようとしても、できなかった方もおられるのではないでしょうか?

現状の設定ではこれが正常な動作ですが、ここからいくつかのコマンドを実行するので、コピペできないと不便です。

そこで、VirtualBoxを動かしているPC(ホストPC)のターミナル(端末)から、VirtualBox上のMicroOSに接続します。

接続にはVirtualBox上のMicroOSに割り当てられているローカルIPアドレスが必要です。これは、MicroOS起動時に表示されます

上の矢印の部分がMicroOSに割り当てられているローカルIPアドレスです。上図の筆者の環境では、「192.168.2.48」となっています。お使いの環境によって異なるので読み替えてください。

また、時々変わってしまうこともあるので、起動時に確認しましょう。起動中に以下のコマンドでも確認できます。

ip a|grep 192

inetの右側、「192.168」から始まる4つの数字が仮想マシンに割り当てられたIPアドレスで、一般的に 192.168 から始まります。

この場合は、「192.168.2.49」が割り当てられているローカルIPアドレス

このアドレスが分かったらホストPCのターミナルを開き、そこからログインしましょう。

以下のコマンドを実行します。[test]は先ほど作ったユーザー名で、[192.168.2.48]が筆者の仮想PC上のMicroOSに割り当てられているアドレスです。お使いのPC環境に合わせて読み替えてください。

ssh -l test 192.168.2.48

コマンドを実行時、初めての接続先の場合は、セキュリティ機能の一つである「フィンガープリント」(デジタル指紋)の値が表示されます。詳細は触れませんが、アクセス時のなりすまし防止などに用いられます。

yes と入力しエンターキーで続行します。

次にユーザー「test」のパスワードを入力します。

このようにしてホストPC上のターミナルを使うと、本記事掲載のコマンドもコピペできるようになります。ターミナルへはマウス、もしくは[Ctrl]+[Shift]+[V]で貼り付けます。

PodmanでDockerコンテナを作成

ここまででコマンドを使用してMicroOSを快適に操作できるようになりましたが、文字だらけのCLI環境で何ができるのかイメージしにくいかもしれません。

そこで本記事では、MicroOSと相性の良いコンテナ構築を紹介します。

コンテナ管理には、Dockerと互換性がある「Podman」を用います。Podmanは軽量で高いセキュリティが特徴のコンテナ管理ツールです。

なお、CLI環境でDockerを使う方法は以下の記事にも掲載しています。本記事の「Podman」とも共通点が多いので参照してください。

では、Podmanでサーバーコンテナを用意し、一例としてWebサイトを作成・管理するCMSの一種である、「PicoCMS」を動作させましょう。

PicoCMS動作の下準備

まず、前提として管理者の root ではなく、一般ユーザーでログインします。例えば、先ほど作成したユーザー「test」でログインします。

以下のコマンドでwgetをインストールします。パスワードを尋ねられるので入力して続行してください。また、インストールの最終確認が行われるので y キーで同意します。

sudo transactional-update pkg install wget

MicroOSは何かをインストールした場合PCの再起動が必要です。これはMicroOSがOS本体を保護する仕組みに関係しています。以下のコマンドで再起動できます。

sudo reboot

再起動後は、もう一度SSH接続してください。

# SSH接続のおさらい。太字部分は環境によって読み替えてください。
ssh -l test 192.168.2.48

PicoCMSをダウンロード

以下のようにwgetコマンドでPicoCMSをダウンロードします。本記事では、PicoCMS バージョン2.1.4を用いて解説します。

wget https://github.com/picocms/Pico/releases/download/v2.1.4/pico-release-v2.1.4.tar.gz

ファイルはまとめて小さく圧縮されているので、展開し利用できるようにします。まず展開先のディレクトリを作ります。

mkdir -p ~/pico/site

以下のコマンドを実行すると、上で作成したディレクトリにファイルが展開されます。

tar xvzf pico-release-v2.1.4.tar.gz -C ~/pico/site

MicroOSでは「~/pico/site」のような、ホームディレクトリ以下に置いたファイルやディレクトリは再起動しても保持されるので、ここに展開しました。

サーバーコンテナの作成と起動

PicoCMSを実行するため、Apacheサーバーのコンテナを用います。本記事ではPHPとセットになったApacheコンテナを利用します。

以下のPodmanコマンドを実行しサーバーコンテナを作るためのイメージを取得します。数分でインストールが完了しターミナルが待機状態になります。

podman pull php:7.4-apache

本来であればサポート中の PHP 8系を用いたいところですが、執筆時点ではPicoCMSの正式リリース版が正常動作しなかったため、本記事では PHP7.4 を用います

イメージが取得できたので、次のコマンドでコンテナを作成し起動します。

podman run -d --name pico-web -p 8080:80 -v ~/pico/site:/var/www/html:Z php:7.4-apache

上記の podman コマンドですが、run で起動、-d オプションでバックグラウンド動作、name 部分でコンテナ名を「pico-web」と設定しました。

また、-p オプションでポート指定を行い、ホストPCからはアドレスに「:8080」を付けてアクセスできるようにしています。ブラウザからは「192.168.X.X:8080」で閲覧できるようになります。

-v オプションで PicoCMSを展開した「site」ディレクトリ内がコンテナからもアクセスできるようになります。

:Zの部分は比較的新しいセキュリティ機能であるSELinux対応のためのオプションです。openSUSE系では執筆時点でSELinux採用が過渡期であるため対応不要の場合もありますが、念のため指定しておきます。

コンテナの動作を以下のコマンドで確認できます。「STATUS」が「Up」になっていれば正常に動作しています。

podman ps

PicoCMSにアクセス

いよいよホストPCのブラウザからアクセスしてみましょう。アドレスは192.168.X.X:8080形式です。

例:192.168.2.49:8080

なお、コンテナを停止・起動したい場合はそれぞれ以下のコマンドを実行します。

podman stop pico-web
podman start pico-web

ここまでで、OS自体は基本的に変更せず安定して動作するイミュータブルLinuxである「openSUSE MicroOS」を試すことができました。

また、コマンド(CLI)のみでLinuxを操作し、「Podman」コンテナで「PicoCMS」を動作させました。

次回は、比較的容易にWebサイトが作れる、このPicoCMSを紹介します。また、PC(仮想マシン)を再起動させてもPodmanコンテナを自動起動させる方法も解説します。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

自称文系ながら気づけばLinuxを10年以上使っている少し変わり種。
寄り道しても結局はGNOMEに戻ってきてしまう習性あり。
のんびり派かつスタミナが続く限り試しながら理解していく実践派。

趣味はバイオリンと(自然)言語探究。コードより和音が好物!?
音楽もITも「背後で何が起きてるか」に興味津々

コメント

コメントする

CAPTCHA


目次