2014年に Red Hat 社が発表した Project Atomic [1] は、コンテナ向け OS を開発する取り組みでしたが、2018 年に CoreOS を買収したことでプロジェクト名が Fedora CoreOS へと変わりました [2]。デスクトップ用途の OS への応用として公開された Fedora Atomic Workstation は、Fedora Silverblue とブランド名を変えて Fedora 29(2018 年 10 月 30 日リリース)から Fedora Workstation の変種 (varianbt) として加えられました。
Fedora Silverblue は immutable(変更されない = read only)なデスクトップ用途の OS で、コンテナを中心としたワークフローのサポートを目的としています。Fedora Silverbllue は下記の構成になっています。
- rpm-ostree
- OSTree は、ファイルシステムツリー(= OS 環境)を管理するツールです。このファイルシステムは起動可能で immutable(変更されない = read only)です。ファイルシステムツリーのイメージは Git のような使い方でバージョン管理をすることができます。
- OSTree と、rpm によるパッケージ管理機能を組み合わせたシステムが rpm-ostree です。rpm-ostree は OSTree による OS イメージの管理と rpm によるパッケージ管理を併せ持つので、ハイブリッドシステムと呼ばれています。
- Flatpak
- Flatpak とは、Linux デスクトップ向けのソフトウェアデプロイメント・パッケージ管理・アプリケーション仮想化(アプリケーション・コンテナ)を行うユーティリティです。
- Toolbox
- Fedora Toolbox は開発者のためにユーザーアカウント単位でコンテナ環境を提供するコマンドラインツールです。
Fedora Silverblue および rpm-ostree については、本ブログで既に紹介しています [3]。Fedora Silverblue は Fedora Workstation の未来だと考えて動向をウォッチしていますが、現時点では正式な Fedora のエディションにはなっていません。次期 Fedora 35 の ChangeSet が出来つつありますが、現時点では Fedora Silverblue に関連するような記述はありません。
Toolbox についても、過去記事 [4] で詳しく紹介しました。なお、rpm-ostree 以外、Flatpak と Toolbox は、他の Fedora でも利用できます。
今回のトピックは Toolbox を使って RHEL のコンテナイメージを扱う方法の紹介です。動作環境は下記の通りです。
Fedora Silverblue 34 | x86_64 | |
- toolbox-0.0.99.1-1 |
今回は Fedora Silverblue で Toolbox を使っていますが、Fedora Workstation / Server でも Toolbox を利用できます。
Toolbox で RHEL コンテナを扱う
4 月 27 日に Fedora 34 がリリースされたと同時に、Fedora Magazine のサイトで下記の記事が掲載されました。
Toolbox のセクションで Fedora 上に RHEL 環境を作成する方法が紹介されていましたので、早速、確認してみました。そろそろ RHEL 8.4 がリリースされる時期ですが、ブログ執筆時点ではまだリリースされていないので、RHEL 8.3 のコンテナを読み込んでみます。
[bitwalk@silverblue ~]$ toolbox create --distro rhel --release 8.3 Image required to create toolbox container. Download registry.access.redhat.com/ubi8/ubi:8.3 (500MB)? [y/N]: y Created container: rhel-toolbox-8.3 Enter with: toolbox enter rhel-toolbox-8.3 [bitwalk@silverblue ~]$ toolbox list CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 13919c108d2a rhel-toolbox-8.3 About an hour ago running registry.access.redhat.com/ubi8/ubi:8.3 [bitwalk@silverblue ~]$
以下のようにして RHEL 8.3 のコンテナに入ります。
[bitwalk@silverblue ~]$ toolbox enter rhel-toolbox-8.3 Welcome to the Toolbox; a container where you can install and run all your tools. - Use DNF in the usual manner to install command line tools. - To create a new tools container, run 'toolbox create'. For more information, see the documentation. ⬢[bitwalk@toolbox ~]$
行の先頭の ⬢ は、Toolbox のコンテナ内であることを示しています。
デフォルトでは、ルート権限が必要な時に sudo が使えないので su(パスワード無し)でルートになります。
⬢[bitwalk@toolbox ~]$ su Welcome to the Toolbox; a container where you can install and run all your tools. - Use DNF in the usual manner to install command line tools. - To create a new tools container, run 'toolbox create'. For more information, see the documentation. ⬢[root@toolbox bitwalk]#
試しになにかパッケージをインストールしてみます。
⬢[root@toolbox bitwalk]# dnf install redhat-lsb-core Failed to set locale, defaulting to C.UTF-8 Updating Subscription Management repositories. Unable to read consumer identity This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Last metadata expiration check: 0:02:48 ago on Wed May 5 19:43:43 2021. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: redhat-lsb-core x86_64 4.1-47.el8 ubi-8-appstream 45 k Installing dependencies: at x86_64 3.1.20-11.el8 ubi-8-baseos 81 k avahi-libs x86_64 0.7-19.el8 ubi-8-baseos 63 k : : util-linux-user x86_64 2.32.1-24.el8 ubi-8-baseos 99 k Transaction Summary ================================================================================ Install 43 Packages Total download size: 26 M Installed size: 90 M Is this ok [y/N]: y Downloading Packages: (1/43): patch-2.7.6-11.el8.x86_64.rpm 648 kB/s | 138 kB 00:00 (2/43): cronie-1.5.2-4.el8.x86_64.rpm 503 kB/s | 119 kB 00:00 : : (43/43): cups-client-2.2.6-38.el8.x86_64.rpm 129 kB/s | 169 kB 00:01 -------------------------------------------------------------------------------- Total 2.3 MB/s | 26 MB 00:11 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : nspr-4.25.0-2.el8_2.x86_64 1/43 Running scriptlet: nspr-4.25.0-2.el8_2.x86_64 1/43 Installing : nss-util-3.53.1-17.el8_3.x86_64 2/43 : : Verifying : nss-3.53.1-17.el8_3.x86_64 43/43 Installed products updated. Installed: at-3.1.20-11.el8.x86_64 avahi-libs-0.7-19.el8.x86_64 : : util-linux-user-2.32.1-24.el8.x86_64 Complete! ⬢[root@toolbox bitwalk]# exit exit ⬢[bitwalk@toolbox ~]$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: RedHatEnterprise Description: Red Hat Enterprise Linux release 8.3 (Ootpa) Release: 8.3 Codename: Ootpa ⬢[bitwalk@toolbox ~]$
パッケージのインストールはできますが、登録されていない旨のメッセージが表示されていますので、セキュリティなどパッケージの更新をするにはサブスクリプションの登録が必要になるようです。自分の場合、Red Hat Developer Subscription for Individuals のサブスクリプションを利用していますが、Toolbox の使い捨てコンテナで作業する分には、面倒なので登録しません。
RHEL で使用する予定のソフトウェアを Fedora 上で開発、あるいは RHEL で動作するかの動作検証をしたい場合に便利です。
Toolbox コマンド
Toolbox のコマンドの概略をまとめました。正式リリースまでまだまだ長い Toolbox のバージョン 0.0.99 ですが、それでもいつの間にかコマンドオプションが増えています。Docker のコマンドを使ったことがあれば容易に理解できると思います。
コマンド | 説 明 |
---|---|
toolbox create [--distro DISTRO | -d DISTRO] [--image NAME | -i NAME] [--release RELEASE | -r RELEASE] [CONTAINER] | |
ツールボックスコンテナを作成します。デフォルトでは、ホストのバージョンと同じ Fedora のイメージをダウンロードします。オプションなしで使用すると、toolbox create は自動的に作成するコンテナに名前を付けます。 | |
toolbox enter [--distro DISTRO | -d DISTRO] [--release RELEASE | -r RELEASE] [CONTAINER] | |
toolbox のコンテナを対話的に使用するために入ります。オプションを指定せずに使用すると、デフォルトのコンテナを開きます。 | |
toolbox run [--container NAME | -c NAME] [--distro DISTRO | -d DISTRO] [--release RELEASE | -r RELEASE] [COMMAND] | |
toolbox のコンテナに入らずにコマンドを実行します。オプションなしで使用すると、デフォルトのコンテナに対してコマンドを実行します。 | |
toolbox list [--containers | -c] [--images | -i] | |
ローカルにある toolbox のイメージとコンテナの一覧を表示します。 | |
toolbox rm [--all] [--force] [CONTAINER...] | |
toolbox のコンテナを削除します。--force オプションを付けると、実行中であってもコンテナを削除します。 | |
toolbox rmi [--all] [--force] [IMAGE...] | |
toolbox のイメージを削除します。 | |
toolbox init-container --home HOME --home-link --media-link --mnt-link --monitor-host --shell SHELL --uid UID --user USER | |
新たに作成した実行中のコンテナを初期化します。 | |
toolbox help [COMMAND] | |
コマンドのヘルプを表示します。 |
参考サイト
- An overview of Project Atomic [LWN.net] [2018-02-21]
- Container Linuxの後継となる新たなコンテナ向けOS「Fedora CoreOS」 | さくらのナレッジ [2020-01-09]
- bitWalk's: Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜 [2019-11-24]
- bitWalk's: Fedora Silverblue と Toolbox [2020-11-03]
にほんブログ村
0 件のコメント:
コメントを投稿