重要なポイント
- Distrobox を使用すると、さまざまな Linux ディストリビューションのアプリケーションを分離したまま、自分のコンピュータ上で実行できます。
- コンテナをホスト コンピュータと統合し、コンテナ内のアプリケーションがホーム ディレクトリにアクセスして構成ファイルを共有できるようにします。
- Distrobox を使用すると、独自のディストリビューションでは見つけたりインストールしたりするのが難しいアプリケーションをインストールして実行できます。
アプリに好みのディストリビューションのサポートがない、または遅れていることに不満を感じていますか?魔法のように、Distrobox はさまざまな Linux ディストリビューションのアプリケーションを Linux コンピューター上で直接実行します。これらはコンピュータ上で実行されていますが、独自のネイティブ ディストリビューション内にあります。それがどのように機能するかを示します。
通常のコンテナの問題点
コンテナは仮想マシンの一種です。従来の 仮想マシン には、内部にオペレーティング システムが完全にインストールされています。多くの場合、デスクトップ環境も備えており、物理的なコンピューターと同じように使用できます。
一方、コンテナーには、コンテナーがサポートする専用のプログラムを実行するための 最小限のオペレーティング システムとツールのみが含まれています 。
コンテナーは軽量で、従来の仮想マシンよりも計算コストが低いため、非常に迅速に起動し、プログラムで制御できます。スクリプトは、スクリプトの作成、使用、シャットダウン、および削除を制御できます。そのため、開発環境やテスト環境などに最適であり、クラウドベースのサービスに自動スケーラビリティを提供します。
仮想マシンの場合と同様に、コンテナ内の アプリケーションは ホスト システムから分離されます。これはほとんどのシナリオでは良いことですが、コンテナー内にインストールされたプログラムを、自分の物理コンピューターにインストールされているかのように使用したい場合には、非常に厄介な問題になります。
Distrobox の違い
Distrobox は 、ホスト コンピューターと統合されたコンテナーを作成および管理する方法です。ホスト コンピューターのデスクトップに表示されるコンテナー内でプログラムを実行できます。これらのアプリケーションはホスト コンピューター上のホーム ディレクトリにアクセスできるため、コンテナー内ではなく実際のホーム ディレクトリにファイルを保存できます。
これにより、アプリケーションの 2 つのコピー (物理コンピューター上に 1 つとコンテナー内に 1 つ) がホスト コンピューターの構成ファイルを共有できるようになります。そのため、たとえば、コンテナ内のブラウザは、物理コンピュータ上の構成ファイルに保存されているブックマークを使用できます。
Distrobox コンテナーもハードウェア パススルーの恩恵を受けます。たとえば、USB デバイスを接続すると、コンテナもそれを認識できます。
Distrobox コンテナーを作成するときに、幅広い Linux ディストリビューションの中から選択できます。また、コンテナーのパッケージ マネージャーを使用してアプリケーションをコンテナーにインストールできるため、自分のコンピューターにパッケージを直接インストールする場合に発生する可能性のある問題を克服できます。
おそらく、パッケージが選択したディストリビューションにインストールするのが難しいことで有名であるか、リポジトリ内のバージョンが古いか、リポジトリにまったく存在しない可能性があります。 そのアプリケーション用の Flatpak を見つけることができるかもしれませんし、ソースから喜んでビルドすることもできるかもしれません。
Distrobox はその煩わしさを取り除き、見つけるのが難しいアプリケーションや、ディストリビューションにとって問題となるアプリケーションをインストールして実行する方法を提供します。
Distrobox のインストール方法
Distrobox は、基盤となるコンテナ管理システムとして Docker または Podman を 使用します。 Dockerを使用していきます。コンピューターに Docker がまだインストールされていない場合は、インストールする必要があります。
Docker のインストール
Docker は、主要なディストリビューションのリポジトリで利用できます。 Ubuntu に Docker をインストールするには、次のコマンドを使用します。彼らは、すでに「docker」という名前を使用していた Ubuntu リポジトリ内の別のアプリケーションと区別するために、パッケージ名に「io」を追加しました。
sudo apt install docker .io
Fedora では、コマンドは次のとおりです。
sudo dnf install docker
Manjaro では次のように入力する必要があります。
sudo pacman -S docker
すべてのディストリビューションで、ユーザー グループを作成し、そのグループに自分を追加する必要があります。これにより、ルートレス方式で Docker を使用できるようになり、Docker にシステムへの root アクセスを与えるよりも安全になります。
groupaddコマンドでグループを作成します。
sudo groupadd docker
Docker がグループを作成した可能性があります。その場合、それはすでに存在していることがわかります。いずれにせよ、usermod コマンドを使用して、あなたをそのグループに追加する必要があります。
sudo usermod -aG docker $USER
グループ メンバーシップを有効にするには、ログインしてからログアウトする必要があります。
Distrobox のインストール
Distrobox のインストールは、docker をインストールするよりもさらに簡単です。 Ubuntu では、使用するコマンドは次のとおりです。
sudo apt install distrobox
Fedora で次のように入力します。
sudo dnf install distrobox
Manjaro の構文は次のとおりです。
sudo pacman -S distrobox
Distrobox コンテナの作成
これでコンテナを作成する準備が整いました。この手順には 画像ファイルが 必要です。 Distrobox コマンドはイメージをダウンロードするので、イメージが存在する Web アドレスを知る必要があります。
Distrobox Web サイトのリスト から使用する画像を選択できます。リストはディストリビューション名のアルファベット順で、AlmaLinux から始まり Void Linux で終わります。
多くのディストリビューションは複数のバージョンで利用できます。たとえば、Fedora にはバージョン 35、36、37、38、および 39 があり、Fedora Rawhide も利用できます。名前に「toolbox」が追加されているバージョンには、デフォルトのプログラムのセットが含まれています。 「ツールボックス」のないものは軽量イメージです。
Arch Linux コンテナを作成します。使用するイメージの Web アドレスをコピーし、次のコマンドに貼り付けます。
distrobox create -i quay.io/toolbx-images/archlinux-toolbox:latest -n "Arch-Db-1"
Distrobox create コマンドを使用してコンテナーを作成します。 -i (image) オプションは、Distrobox にどのイメージを使用するかを指示します。 -n (name) オプションは、コンテナーの名前を設定します。これは、コンテナー内の仮想コンピューターのホスト名にもなります。
イメージをコンピュータにダウンロードするように求められます。 Y を押して Enter キーを押します。
私たちが試したすべてのダウンロードは驚くほど高速でした。コマンド プロンプトに戻ったら、Distrobox enter コマンドを使用して新しい Arch Linux コンテナを起動し、に入ります。
distrobox enter Arch-Db-1
コンテナーの初回起動時にいくつかのハウスキーピングを実行する必要があります。私たちのテスト マシンでは、これに 1 ~ 2 分かかりました。
コマンド プロンプトに戻ったら、コマンド プロンプトを見てください。作成して入力したコンテナの名前が表示されます。これで、Arch Linux コンテナー内に入りました。
ホスト上のコンテナ内でアプリを使用する
要点を証明するために、Arch パッケージ マネージャーである pacman を使用して neofetch をインストールします。
sudo pacman -S neofetch
neofetch を実行すると、Ubuntu を実行していることがわかっている VirtualBox 仮想マシン上で実行されている Arch Linux インスタンス内にいることがわかります。
Arch リポジトリ または AUR から コンテナに任意のアプリケーションをインストールし、ホスト コンピュータで実行できます。
ls コマンドを実行すると、Ubuntu ホスト コンピューターのホーム ディレクトリが表示されます。
ホスト コンピューター上に「MyUbuntuDocument.md」というファイルを作成しました。このファイルはコンテナー内で表示およびアクセスできます。
ホスト上のコンテナ内でグラフィカル アプリを使用する
グラフィカル インターフェイスを使用するアプリケーションを Arch コンテナ内にインストールして実行してみましょう。
sudo pacman -S opera
インストールしたらすぐに、Arch Linux コマンド プロンプトから「opera」と入力してブラウザを起動できます。しかし、Distrobox を使用すると、コンテナの外部、つまりホスト コンピューターのコマンド プロンプトからプログラムを起動できます。
distrobox-enter -T -n Arch-Db -1 -- "opera"
-T (tty なし) オプションは、新しい端末ウィンドウの作成を抑制します。 -n (name) コマンドは、コマンドのために内部を調べるコンテナーを Distrobox に指示します。 「–」(引数の終わり)オプションは、その後に続くすべてが起動されるべきコマンドの一部であることを Distrobox に伝えるフラグです。
Opera が起動され、ホスト コンピュータにインストールされているかのようにデスクトップ上で実行されます。
作業を容易にするために、アプリケーションを起動するコマンドを エイリアスとして保存 するか、ホスト コンピュータ上の デスクトップ ファイル内に 置くことができます。
起動されたアプリケーションがホスト コンピュータにアクセスできることは明らかです。ホスト コンピュータ上の「~/.config」ディレクトリ内を見ると、「opera」ディレクトリが作成されていることがわかります。ブラウザーはその設定を Ubuntu ホストに保存しています。
その他の便利なコマンド
コンテナから終了するには、「exit」と入力して「Enter」を押します。
プロンプトがホスト コンピュータのプロンプトに戻るのがわかります。ただし、コンテナはまだ実行中です。コンテナをシャットダウンする場合は、stop コマンドを使用します。
distrobox stop Arch-Db -1
本当にコンテナを停止したいのかを確認する必要があります。
作成したコンテナを確認するには、list コマンドを使用します。
distrobox list
色は、どのコンテナが実行されているか、どのコンテナが実行されていないかを強調するために使用されます。
delete と同様に、distrobox rm コマンドを使用してコンテナーを削除できます。
distrobox rm OpenSuse-1
あらゆるアプリ、あらゆるディストリビューションから
コンテナーは必要な数だけ作成でき、各コンテナーには異なる Linux ディストリビューションを含めることができ、各コンテナーには任意の数のアプリケーションを含めることができるため、並べ替えは無限にあります。
あらゆるディストリビューションのアプリケーションを見逃す理由はもうありません。





