このガイドでは、Toolboxとは何か、およびFedoraLinuxでToolboxを使用してコンテナー化された開発環境を作成および管理する方法について説明します。
はじめに
近年、Linuxコンテナの仮想化は大きな勢いを増しています。実際、新世代の仮想化はコンテナ化です。
現在、アプリケーション開発者は主に、優先する開発環境としてコンテナーを使用しています。 Linuxコンテナを作成および管理するためのツールはたくさんあります。 ポッドマン 、 Docker 、 Vagrant いくつかの人気のあるコンテナ管理アプリケーションです。
今日は、ツールボックスと呼ばれるさらに別のユーティリティについて説明します。 これにより、コンテナ化された環境を日常のソフトウェア開発に簡単に使用できます。
ツールボックスとは何ですか?
Toolboxは、Fedoraベースシステム上にコンテナー化されたコマンドライン環境を作成するためのFedoraの社内ツールです。
これは、開発ツールとライブラリをインストールして使用できる、使用とスローのソフトウェア開発環境をセットアップする場合に特に便利です。
Toolboxは、 OSTree用に特別に開発されています Fedora Core OSなどのベースのシステム およびFedoraSilverblue 。ご存知かもしれませんが、OSTreeベースのシステムは不変です。
Toolboxは、OCIコンテナイメージとPodmanの上に構築されています。 root
は必要ありません コンテナをデプロイする権限。ツールボックスのインストールと使用法は非常に使いやすく、覚えやすいのは良いことです!
ツールボックスを選ぶ理由
不変OSの実際の目標は、ホストシステムへのソフトウェアのインストールを阻止し、ユーザーにソフトウェアをコンテナにインストールするように促すことです。
OSTreeベースのシステムとは異なり、コンテナは完全に変更可能です。そのため、お気に入りの開発およびデバッグツール、エディター、SDKをコンテナー内にインストールできます。ホストシステムには何もインストールされません。
これを簡単に言えば、Toolboxを使用して、不変のホストオペレーティングシステムに可変コンテナをデプロイできます。
ツールボックスの仕組み
デフォルトでは、Toolboxは現在のシステムに基づいてコンテナを作成します。たとえば、ベースシステムがFedora 35の場合、ツールボックスはFedora 35に基づいてコンテナーを作成します。このコンテナーでは、yum
などのパッケージマネージャーを使用できます。 またはdnf
好みのアプリケーションをインストールします。他のFedoraバージョンに基づいてコンテナーを作成することもできます。
一度に複数のコンテナーを開始して、異なるプロジェクトの作業を同時に開始できます。コンテナを使い終わったら、コンテナを削除して、いつでも新しいコンテナを作成します。繰り返しになりますが、ホストシステムはまったく影響を受けません。このようにして、クリーンなホストOSを維持できます。これにより、混乱が大幅に回避され、ホストOSの再インストールのプロセスが削減されます。
FedoraにToolboxをインストールする
Toolboxには、FedoraSilverblue30以降のエディションがプリインストールされています。 Fedoraワークステーションでは、dnf
を使用してインストールできます。 またはyum
パッケージマネージャー:
$ sudo dnf install toolbox
または、
$ sudo yum install toolbox
FedoraSilverblueでツールボックスを使い始める
Toolboxには、コンテナを作成、一覧表示、入力、および削除するための少数のコマンドが用意されています。
1。ツールボックスのヘルプを表示する
Toolboxを初めて使用する場合は、Toolboxヘルプセクションを表示して、各コマンドの機能を確認することをお勧めします。ツールボックスのヘルプを表示するには、次のコマンドのいずれかを使用します。
$ toolbox --help
$ toolbox help
$ toolbox -h
それでは、新しいコンテナの作成から始めましょう。
2。新しいコンテナを作成する
現在のFedoraOSバージョンに基づいて新しいコンテナーを作成するには、次のコマンドを実行するだけです。
$ toolbox create
このコマンドは、ローカルシステムからコンテナを構築するために使用するベースイメージを検索します。ローカルイメージが見つからない場合は、それぞれのイメージをダウンロードするように求められます。 yと入力します ENTERキーを押して画像をダウンロードします。
出力例:
Image required to create toolbox container.
Download registry.fedoraproject.org/fedora-toolbox:33 (500MB)? [y/N]: y
Created container: fedora-toolbox-33
Enter with: toolbox enter

Toolboxは、現在のホストシステムのOSのバージョンと一致するイメージをFedoraレジストリーからダウンロードし、ダウンロードされたイメージに基づいて新しいコンテナーを作成します。画像は通常、実際の配布の簡略版です。
2.1。カスタム名でコンテナを作成する
ツールボックスは自動的に一意の名前を割り当てます(例:fedora-toolbox-33
)新しく作成されたコンテナに。
選択したカスタム名でコンテナを作成する場合は、--container
を使用します 、-c
フラグの後に次のようなコンテナの名前が続きます:
$ toolbox create --container mytoolbox-f33
またはまもなく:
$ toolbox create -c mytoolbox-f33
ここでは、mytoolbox-f33
はコンテナの名前です。
3。特定のOSバージョンに基づいて新しいコンテナを作成する
すでに述べたように、Toolboxは現在のOSバージョンに基づいてコンテナーを作成します。たとえば、Fedora 34を実行している場合、ToolboxはFedora34イメージに基づいてコンテナーを作成します。
ただし、他のバージョンに基づいてコンテナを作成することもできます。次のコマンドを使用して、Fedora33シルバーブルーエディションでFedora32コンテナーを作成しました。
$ toolbox create --release f32
またはまもなく、
$ toolbox create -r f32
4。コンテナの一覧表示
システムでローカルに使用可能なすべてのコンテナを一覧表示するには、次のコマンドを実行します。
$ toolbox list
出力例:
IMAGE ID IMAGE NAME CREATED
9659c2039e64 registry.fedoraproject.org/f32/fedora-toolbox:32 4 months ago
675192cc4238 registry.fedoraproject.org/fedora-toolbox:33 4 weeks ago
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
2cfb48d6a6c5 fedora-toolbox-32 4 months ago exited registry.fedoraproject.org/f32/fedora-toolbox:32
1f709997b871 fedora-toolbox-33 27 minutes ago configured registry.fedoraproject.org/fedora-toolbox:33

上記の出力でわかるように、2つのコンテナー、つまりfedora-toolbox-32
があります。 およびfedora-toolbox-33
私のシステムで。
出力の上部には、イメージID、イメージの名前、それらのイメージがいつ作成されたかなど、コンテナーの作成に使用されたベースイメージの詳細が表示されます。下部には、コンテナID、コンテナ名、コンテナが作成された日時、コンテナのステータスなど、コンテナの詳細が表示されます。
コンテナの詳細または画像の詳細を個別に表示することもできます。コンテナの詳細のみを一覧表示するには、--containers
を使用します 、-c
オプション:
$ toolbox list --containers CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 2cfb48d6a6c5 fedora-toolbox-32 4 months ago running registry.fedoraproject.org/f32/fedora-toolbox:32 1f709997b871 fedora-toolbox-33 21 hours ago running registry.fedoraproject.org/fedora-toolbox:33
画像のみを一覧表示するには、--images
を使用します 、-i
フラグ:
$ toolbox list --images IMAGE ID IMAGE NAME CREATED 9659c2039e64 registry.fedoraproject.org/f32/fedora-toolbox:32 4 months ago 675192cc4238 registry.fedoraproject.org/fedora-toolbox:33 4 weeks ago
コンテナ名とイメージ名は、名前の最後の部分を除いてほぼ同じように見えることに注意してください。
コンテナ名には通常ハイフンが付いています (-)名前の最後の部分の前(例:fedora-toolbox-33
)および画像名にはコロンがあります (:)(例:fedora-toolbox:33
。
5。コンテナに入る
コンテナはすでに作成されていますが、入力されていません。それでは、コマンドを使用してコンテナに入りましょう:
$ toolbox enter
コンテナに入ると、シェルプロンプトの前にひし形が表示されます。 次の出力に示すシンボル:
⬢[[email protected] ~]$
プロンプトの左端にあるひし形の記号に気づきましたか?それはあなたがコンテナの中にいることを意味します。

コンテナは、現在のOSとシームレスに統合されます。各コンテナ内には、既存のユーザー名と権限があります。
ホストシステムからアクセスするのと同じように、ホームディレクトリや他のいくつかの場所にアクセスできます。システムとセッションの両方のD-Bus、システムジャーナル、Kerberosなどにアクセスすることもできます。
各コンテナには、パッケージマネージャー(DNF
など)を含む一般的なコマンドラインツールが含まれています Fedoraで)。したがって、コンテナ内の任意のソフトウェアをインストールしてテストできます。
たとえば、次のコマンドは必要なすべての開発ツールをインストールします。
$ sudo yum groupinstall "Development Tools"
5.1。特定のコンテナに入る
toolbox enter
を実行するとき オプションを指定せずにコマンドを実行すると、デフォルトのツールボックスコンテナが開きます。デフォルトのコンテナは、ホストOSに基づくコンテナです。
別のコンテナを開く場合は、次のようにその名前を明示的に指定してください。
$ toolbox enter -c fedora-toolbox-32
ここでは、-c
コンテナ名とfedora-toolbox-32
を参照するために使用されます はコンテナ名です。
6。ツールボックスを終了
コンテナを使い終わったら、exit
と入力するだけです。 コンテナからログアウトします。
$ exit
7。コンテナに入力せずにコンテナでコマンドを実行する
Toolboxの注目すべき機能は、コンテナーに入力せずにコンテナーでコマンドを実行できることです。次のコマンドは、ホストシステムからのデフォルトコンテナの配布リリースを表示します。
$ toolbox run cat /etc/redhat-release
Fedora release 33 (Thirty Three)
toolbox run
を実行するとき オプションを指定せずにコマンドを実行すると、デフォルトのコンテナでコマンドが実行されます。 --container
で名前を指定することにより、他のコンテナーでコマンドを実行することもできます。 、-c
フラグ:
$ toolbox run -c fedora-toolbox-32 cat /etc/redhat-release
Fedora release 32 (Thirty Two)

8。コンテナの実行を停止します
コンテナを終了した後、コンテナを停止するまで実行を続けます。実行中のコンテナを停止するための直接的なツールボックスコマンドはありません。ただし、podman
は使用できます ツールボックスコンテナを停止するコマンド:
$ podman container stop fedora-toolbox-33
Toolboxは内部でpodmanを使用していることを忘れないでください。
9。ツールボックスのコンテナと画像を削除する
コンテナまたはそのベースイメージが必要ない場合は、以下のように簡単に削除できます。
コンテナを削除する前に、そのコンテナを終了したことを確認してください。
コンテナを削除するには、次のコマンドを実行します:
$ toolbox rm fedora-toolbox-32
上記のコマンドは、fedora-toolbox-32
という名前のコンテナーを削除します 。
実行中のコンテナを強制的に削除するには、--force
を使用します 、-f
フラグ:
$ toolbox rm -f fedora-toolbox-32
すべてのコンテナを削除するには、--all
を使用します 、-a
フラグ:
$ toolbox rm --all
使用可能なコンテナを一覧表示して、コンテナが削除されているかどうかを確認します。
$ toolbox list
同様に、toolbox rmi
を使用してツールボックスの画像を削除できます 以下のようなコマンド:
$ toolbox rmi fedora-toolbox:32
i
に注意してください 上記のコマンドで。 rm
コマンドはコンテナを削除しますが、rmi
コマンドは画像を削除します。また、削除する画像の正しい名前を指定することを忘れないでください。
すべての画像を削除するには、--all
を使用します 、-a
フラグ:
$ toolbox rmi --all
podmanを使用してツールボックスのコンテナと画像を管理する
Toolboxはpodmanの単なるラッパーであるため、podmanコマンドを直接使用してコンテナーを管理できます。
podmanコマンドを使用してツールボックスコンテナを一覧表示するには、次のコマンドを実行します。
$ podman ps -a
podmanでツールボックスの画像を一覧表示するには、次のコマンドを実行します:
$ podman images
コンテナを開始するには:
$ podman start fedora-toolbox-33
実行中のすべてのコンテナのライブリソース使用統計を表示するには:
$ podman stats
コンテナを停止するには:
$ podman stop fedora-toolbox-33
コンテナの検査:
$ podman inspect fedora-toolbox-33
コンテナを削除します:
$ podman rm <container-name>
画像を削除:
$ podman rmi <image-name>
利用可能な多くのpodmanコマンドがあります。 podmanヘルプセクションから利用可能なすべての一般的なコマンドとオプションを表示できます:
$ podman --help
結論
コンテナーは、実験や学習の目的だけでなく、さまざまなOSバージョンでさまざまなプロジェクトに取り組むことができる分離された開発環境にも最適です。 Toolboxを使用すると、コンテナの管理がはるかに簡単になります。