ウェブサイト検索

Toolbx:Fedoraで複数の開発用コンテナを管理する


現代のLinux開発は、すべてをシステムに直接インストールする従来の方法を超えています。現在では、完全な仮想マシンのオーバーヘッドや手動のコンテナ管理の複雑さに対処することなく、隔離された開発環境を作成するのに役立つツールを利用できます。

ここで登場するのがFedora Toolbxです。これは、コンテナ化された開発環境を簡単に立ち上げることができ、ホストシステムで直接作業するのと同じようにシームレスな体験を保つツールです。

このガイドでは、Fedora Toolbx を設定して使用し、分離され、再現可能で管理が簡単な開発環境を作成する方法を学びます。Toolbx がどのようにして、複数のプロジェクトで依存関係が競合する場合でも、ベースシステムをきれいで整理された状態に保ちながら作業できるようにするかを探ることができます。

このガイドでは、Toolbxの基本を簡単で実用的な説明とともに案内します。まず、Toolbxとは何か、なぜ必要なのかを学び、その後、Fedoraシステムにインストールして設定する方法に進みます。その後、最初の開発コンテナを作成し、複数の環境を効果的に管理する方法を理解します。

最後のセクションでは、日々の開発作業でToolbxを最大限に活用するのに役立つ、一般的なワークフローとベストプラクティスを紹介します。

注意: Toolbx はもともと Fedora 向けに開発されており、Fedora ベースのシステムで最もよく動作しますが、他の最新の Linux ディストリビューションでも使用できます。ただし、このガイドは主に Fedora に焦点を当てています。

Toolbxを理解する:何がそれを特別にしているのか

Toolbxを使い始める前に、それが実際に何をするのか、そしてなぜあなたの開発ワークフローに必要なのかを理解することが重要です。

Toolbx は、Podman を使用してコンテナ化された環境を作成します。Podman は Docker に似たコンテナエンジンですが、デーモン を使用せずに動作します。

Toolbx を際立たせているのは、これらのコンテナをホストシステムと非常に密接に統合していることで、従来のコンテナのように制約を感じさせないシームレスな開発体験を提供する点です。

Toolbx コンテナを使用すると、開発作業をより簡単にするいくつかの重要な利点を得られます:

  • シームレスなホームディレクトリアクセス – ホームディレクトリが自動的にコンテナにマウントされるため、追加の設定なしでファイル、設定、およびSSHキーがすぐに利用可能になります。
  • 直接ハードウェアアクセス – グラフィックス、オーディオ、およびその他のデバイスは、特別な設定や複雑なマウント手順を必要とせず、そのまま使用できます。
  • ホスト統合 – グラフィカルなアプリケーションを実行したり、ネットワークにアクセスしたり、システムとやり取りしたりすることができ、まるでコンテナ内ではなくホストシステム上で直接作業しているかのように操作できます。

あなたはToolbxを、開発ツールや依存関係の周りに保護された「バブル」を作るものだと考えることができます。このバブルの内部では、特定のプロジェクトに必要なパッケージ、ライブラリ、ツールをメインシステムに影響を与えることなくインストールすることができます。

以下のセクションでは、FedoraシステムにToolbxをインストールし、これらの隔離された開発環境の作成を開始する方法を学びます。

FedoraにToolbxをインストールする

Fedora Workstation(バージョン28以降)では、toolbx が事前にインストールされており、次のコマンドを実行することで確認できます。

toolbox --version

バージョン番号が表示されれば準備完了です。Toolbx がインストールされていない場合は、次のコマンドで追加できます:

sudo dnf install toolbox

これでインストールは完了です。複雑な設定ファイルも、デーモンの設定も、追加の依存関係も心配する必要はありません。

最初のToolbxコンテナを作成する

<strong>Toolbx</strong>コンテナの作成は簡単なプロセスで、単一のコマンドで完了させることができ、現在の Fedora バージョンに基づいたデフォルトのコンテナが作成されます。

たとえば、Fedora 41 を使用している場合、ツールは自動的に Fedora 41 コンテナを作成します。このコマンドを初めて実行すると、Toolbx はコンテナイメージをダウンロードしますが、所要時間はインターネット接続速度によって数分かかることがあります。

toolbox create

コンテナが作成されたら、次のコマンドを実行してコンテナに入ることができます。

toolbox enter

プロンプトに表示される小さなコンテナのアイコン (⬢) に気付くでしょう。これは、あなたが Toolbx コンテナの中にいることを示しています。

コンテナ化された環境で作業していても、ホームディレクトリやファイル、ほとんどのホストシステムの環境は、メインのシステム上でのように簡単にアクセスできるままです。

異なるFedoraバージョンの使用

時には特定のFedoraのバージョンで作業する必要があります。例えば、あなたの本番サーバーが古いリリースを実行している場合や、メインシステムをアップグレードする前に最新バージョンとの互換性をテストしたい場合です。

Toolbx は、--release または -r フラグを使うことでこれを簡単にします:

toolbox create --release 39 fedora39-container
toolbox create --release 41 testing-fedora41

ホストシステムで新しいバージョンを実行している間でも、古いFedoraバージョンのコンテナを使用でき、異なる環境との互換性を維持する便利な方法を提供します。

コンテナ環境のテスト

実際にコンテナの中にいることを確認し、ホストシステムとどのように異なるかを見るには、いくつかの簡単なコマンドを実行できます。例えば、どのパッケージがインストールされているかを確認するなどです。

dnf list installed | wc -l

コンテナのホスト名も確認できます:

hostname

現在の作業ディレクトリを確認し、ホームディレクトリにアクセスできることを確認するには:

pwd
ls -la

コンテナの中にいるのに、自分のホームディレクトリにいて、見慣れたファイルやフォルダがすべて表示されていることに気付くでしょう。

コンテナ内にソフトウェアをインストールする

コンテナ内に入ったので、ホストシステムに影響を与えずに開発ツールをインストールできます。例えば、Python開発環境を設定したい場合は:

sudo dnf install python3-pip python3-virtualenv git vim -y

コンテナを終了してホストシステムを確認しても、これらのパッケージはインストールされていません。これらは Toolbx 環境内にのみ存在します。

Node.js 開発ツールで別の例を試してみましょう。

sudo dnf install nodejs npm -y
node --version
npm --version

これらのコマンドは Node.js と npm をインストールし、その後バージョンを確認してインストールを検証します。繰り返しますが、このインストールはホストシステムから完全に隔離されています。

コンテナでの作業が終わったら、次のコマンドを実行するだけで退出できます:

exit

異なるプロジェクトのための名前付きコンテナの作成

デフォルトのコンテナは一般的な開発作業には問題なく使えますが、異なるプロジェクトや特定の目的のために別々のコンテナが必要になることがよくあります。名前付きコンテナを作成することで、開発環境をより効果的に整理し、作業を分離して管理することができます。

名前付きコンテナを作成するには、toolbox create コマンドを実行し、その後にコンテナに付けたい名前を指定します:

toolbox create python-dev
toolbox create nodejs-project
toolbox create rust-experiments

これらのコマンドのそれぞれは、それぞれ独自の隔離された環境を持つ異なるコンテナを作成します。特定のプロジェクトで作業したい場合は、対応するコンテナの名前をenterコマンドで指定して入ります:

toolbox enter python-dev

このアプローチは、さまざまな種類の開発作業のために完全に隔離された環境を維持するのに役立ちます。たとえば、Python コンテナでは最新の依存関係をすべて含む Python 3.12 を実行できる一方で、レガシープロジェクトのコンテナでは古いライブラリを使用した Python 3.8 を使用することが可能であり、どちらの環境も互いに干渉せず、ホストシステムに影響を与えることはありません。

Toolbxからグラフィカルアプリケーションを実行する

Toolbxを本当に特別なものにしているのは、コンテナ内からグラフィカルなアプリケーションをシームレスに実行できる能力です。従来のコンテナとは異なり、複雑なX11転送の設定と構成を必要としません。

Toolbx はすべての表示統合を自動で処理し、まるでホストシステム上で直接アプリケーションを実行しているかのような感覚を提供します。

これが実際にどのように機能するかを見るために、例としてグラフィカルなテキストエディタをインストールして実行してみましょう。

toolbox enter
sudo dnf install gedit -y

インストールが完了したら、エディターを起動できます。

gedit &

geditのウィンドウは、まるでホストシステムから起動したかのようにデスクトップに開きます。ファイルを作成、編集、保存することができ、すべて期待通りに動作します。

末尾のアンパサンド (&) はアプリケーションをバックグラウンドで実行し、グラフィカルアプリケーションが開いたままでもターミナルを使い続けることを可能にします。

複数のToolbxコンテナの管理

異なるプロジェクトのためにコンテナをさらに作成するにつれて、それらを追跡し、効果的に管理する方法が必要になります。Toolbx は、コンテナ化された環境を表示、制御、整理するのに役立ついくつかのコマンドを提供します。

コンテナの一覧表示

作成したすべてのコンテナを確認するには、リストコマンドを実行します。

toolbox list

この出力から、現在実行中のコンテナと終了したコンテナを確認できます。

コンテナの詳細を確認中

特定のコンテナについてより詳細な情報が必要な場合は、Toolbx コンテナは通常の Podman コンテナであるため、直接 Podman を使用できます:

podman ps -a

特定のコンテナを検査して、その完全な構成を確認することもできます。

podman inspect python-dev

実行中のコンテナの停止と起動

コンテナでの作業が終わり、システムリソースを解放したい場合は、明示的に停止することができます。

podman stop python-dev

リストコマンドを再度実行して、コンテナが停止していることを確認できます:

toolbox list

コンテナのステータスが「running」から「exited」に変わったことが確認できます。

もし現在停止しているコンテナがあり、再び使用したい場合は、単に enter すると、Toolbx が自動的に起動してくれます:

toolbox enter python-dev

もう必要のないコンテナを削除する

時間が経つにつれて、もう使用しないコンテナが蓄積されることがあり、これらのコンテナはシステムのディスクスペースを占有します。もはやコンテナが不要であると確信した場合は、rmコマンドを使用して完全に削除することができます。

toolbox rm python-dev

コンテナを削除する前に、Toolbx は操作の確認を求めます。確認するには単に y と入力してください。すると Toolbx はコンテナ内にインストールしたすべてのパッケージや設定とともにコンテナを削除します。

重要な注意事項: コンテナを削除すると、すべてのパッケージ、システム設定、コンテナのファイルシステム内に保存されているデータがすべて削除されますが、ホームディレクトリのファイルは完全に安全です。

削除した後、次のコマンドで全てのコンテナ、イメージ、ボリュームのディスク使用量を確認できます:

podman system df

すべての停止したコンテナと未使用のイメージを削除してディスクスペースを解放したい場合は、クリーンアップコマンドを実行できます:

podman system prune
結論

Toolbx は、従来の仮想マシンの複雑さなしで、Fedora システム上の開発環境を管理する強力な方法を提供します。

このガイドを通じて、隔離されたコンテナを作成し、グラフィカルなアプリケーションを実行し、複数の開発環境を管理しながら、ベースシステムを清潔に保つ方法を学びました。

このガイドは役に立ちましたか?下のコメント欄で、あなたの経験、質問、またはヒントを共有してください。あなたのフィードバックは、私たちのコンテンツ改善に役立ち、他の読者のToolbxの旅にも役立ちます。