「Distrobox」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版より新規作成)
 
(一部翻訳)
1行目: 1行目:
[[Category:Virtualization]]
+
[[Category:仮想化]]
[[Category:Sandboxing]]
+
[[Category:サンドボックス]]
  +
Distrobox は、ホストとの緊密な統合を提供しながら、ホストと異なる Linux のコンテナ化されたバージョンをインストールし、あるディストリビューションで設計されたバイナリを別のディストリビューションで実行することを可能にするコンテナのラッピングレイヤーです。
Distrobox is a container wrapping layer that allows the user to install containerised versions of Linux that are different to the host while providing tight integration with the host allowing the use of binaries designed for one distribution to run on another.
 
   
Distrobox itself is not a container manager and relies on [[Podman]] or [[Docker]] to create containers.
+
Distrobox 自体はコンテナマネージャーではなく、[[Podman]] または [[Docker]] に依存してコンテナを作成します。
   
From the Distrobox documentation:
+
Distrobox のドキュメントから:
   
  +
:ターミナル内の任意の Linux ディストリビューションを使用してください。ソフトウェアのバックワードおよびフォワード互換性を有効にし、好きなディストリビューションを自由に使用することができます。Distrobox は、選択した Linux ディストリビューションを使用して、podman または docker を使用してコンテナを作成します。作成されたコンテナは、ホストと緊密に統合され、ユーザーの HOME ディレクトリ、外部ストレージ、外部 USB デバイス、グラフィカルアプリ (X11/Wayland)、およびオーディオの共有が可能になります。
:Use any Linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Distrobox uses podman or docker to create containers using the Linux distribution of your choice. The created container will be tightly integrated with the host, allowing sharing of the HOME directory of the user, external storage, external USB devices and graphical apps (X11/Wayland), and audio.
 
   
  +
== セキュリティへの影響 ==
== Security implications ==
 
   
  +
Distrobox の主な目的は、ホストからコンテナをサンドボックス化することに焦点を当てていない(プロジェクトの緊密な統合の性質上、これは不可能)ため、Distrobox 内で実行されるコンテナは、ホームフォルダーおよび他のいくつかの場所にフルアクセスします。
The main goal of Distrobox is not focused on sandboxing the containers from the host (this would be impossible due to the tight integration nature of the project) and as such containers running inside Distrobox will have full access to your home folder as well as a few other locations.
 
   
A sandboxed mode of operation is currently in the planning stages, you can track its progress [https://github.com/89luca89/distrobox/issues/28 here].
+
サンドボックス化された運用モードは現在計画段階にあり、進行状況は[https://github.com/89luca89/distrobox/issues/28 こちら]でトラッキングできます。
   
  +
デフォルトで Docker はコンテナを root として実行し、rootful コンテナは'''ホストのファイルシステムに無制限のアクセスを持つ'''ため、Docker よりも Podman を使用することを推奨します。Rootless Docker は現在動作していないが、作業中です。
It is recommended to use Podman over Docker since by default Docker will run containers as root and rootful containers '''will have unrestricted access to your hosts filesystem'''. Rootless Docker is currently not working though is being worked on.
 
   
== Installation ==
+
== インストール ==
   
  +
=== ルートアクセス権を持つ場合 ===
=== With root access ===
 
   
  +
まず、[[Podman]] または [[Docker]] の'''いずれか'''の ページに従い、Hello World コンテナをインストールして実行できることを確認してください。
First follow the page for '''either''' [[Podman]] or [[Docker]] and make sure you are able to install and run a Hello World container.
 
   
[[Pacman#Installing packages|Install]] either {{pkg|distrobox}} or {{aur|distrobox-git}}
+
[[Pacman#パッケージのインストール|パッケージをインストール]]するには、{{pkg|distrobox}} または {{aur|distrobox-git}} のいずれかを選択してください。
   
  +
=== ルートアクセス権がない場合/イミュータブルなファイルシステムの場合 ===
=== Without root access/Immutable filesystem ===
 
   
  +
以下の両方を実行して、[[CURL]] を使用して、ホームフォルダに Distrobox と Podman をインストールします。
Install Distrobox and Podman to your home folder using [[CURL]] by running both of the following:
 
   
 
{{ic|Distrobox}}
 
{{ic|Distrobox}}
35行目: 35行目:
 
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
 
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
   
Add the following locations to your {{ic|$PATH}} by setting a [[Environment variables#Per user|per user Environment Variable]]:
+
以下の場所を {{ic|$PATH}} に追加します。[[Environment variables#Per user|ユーザーごとの環境変数]]を設定します:
 
$HOME/.local/bin
 
$HOME/.local/bin
 
$HOME/.local/podman/bin
 
$HOME/.local/podman/bin
   
If you have issues with graphical applications running inside your containers then you also need to install {{pkg|xorg-xhost}} and add the following to {{ic|~/.bashrc}} or {{ic|~/.profile}} or {{ic|~/.xinitrc}}:
+
コンテナ内でグラフィカルアプリケーションの実行に問題がある場合は、{{pkg|xorg-xhost}} をインストールし、以下を {{ic|~/.bashrc}} {{ic|~/.profile}} 、または {{ic|~/.xinitrc}} に追加する必要があります:
 
xhost +si:localuser:$USER
 
xhost +si:localuser:$USER
   

2023年8月27日 (日) 16:58時点における版

Distrobox は、ホストとの緊密な統合を提供しながら、ホストと異なる Linux のコンテナ化されたバージョンをインストールし、あるディストリビューションで設計されたバイナリを別のディストリビューションで実行することを可能にするコンテナのラッピングレイヤーです。

Distrobox 自体はコンテナマネージャーではなく、Podman または Docker に依存してコンテナを作成します。

Distrobox のドキュメントから:

ターミナル内の任意の Linux ディストリビューションを使用してください。ソフトウェアのバックワードおよびフォワード互換性を有効にし、好きなディストリビューションを自由に使用することができます。Distrobox は、選択した Linux ディストリビューションを使用して、podman または docker を使用してコンテナを作成します。作成されたコンテナは、ホストと緊密に統合され、ユーザーの HOME ディレクトリ、外部ストレージ、外部 USB デバイス、グラフィカルアプリ (X11/Wayland)、およびオーディオの共有が可能になります。

セキュリティへの影響

Distrobox の主な目的は、ホストからコンテナをサンドボックス化することに焦点を当てていない(プロジェクトの緊密な統合の性質上、これは不可能)ため、Distrobox 内で実行されるコンテナは、ホームフォルダーおよび他のいくつかの場所にフルアクセスします。

サンドボックス化された運用モードは現在計画段階にあり、進行状況はこちらでトラッキングできます。

デフォルトで Docker はコンテナを root として実行し、rootful コンテナはホストのファイルシステムに無制限のアクセスを持つため、Docker よりも Podman を使用することを推奨します。Rootless Docker は現在動作していないが、作業中です。

インストール

ルートアクセス権を持つ場合

まず、Podman または Dockerいずれかの ページに従い、Hello World コンテナをインストールして実行できることを確認してください。

パッケージをインストールするには、distrobox または distrobox-gitAUR のいずれかを選択してください。

ルートアクセス権がない場合/イミュータブルなファイルシステムの場合

以下の両方を実行して、CURL を使用して、ホームフォルダに Distrobox と Podman をインストールします。

Distrobox

$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local

Podman

$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local

以下の場所を $PATH に追加します。ユーザーごとの環境変数を設定します:

$HOME/.local/bin
$HOME/.local/podman/bin

コンテナ内でグラフィカルアプリケーションの実行に問題がある場合は、xorg-xhost をインストールし、以下を ~/.bashrc~/.profile 、または ~/.xinitrc に追加する必要があります:

xhost +si:localuser:$USER

Uninstalling

Distrobox provides an uninstallation script for rootless installs, to execute it run the following:

$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sh -s -- --prefix ~/.local
ノート: This script is only required if you installed rootless, if you installed via Pacman then you should uninstall in the usual way

Usage

ノート:
  • Throughout the following section name is a variable and can be whatever you want. In all cases replace name with the actual name you choose
  • For the full list of supported options in any sub category use --help, for example to see all creation options use distrobox create --help
  • A full list of supported distros along with their image names can be found at https://distrobox.privatedns.org/compatibility/#containers-distros
  • For more advanced usage techniques please see the Distrobox Documentation page at https://distrobox.privatedns.org/usage/usage

To create a new container run the following:

$ distrobox create -n name

To list installed containers run the following:

$ distrobox list

To interact with an installed container run the following:

$ distrobox enter name

or you can send a command directly to a container with:

$ distrobox enter name -- command-to-execute

To stop a running container run the following:

$ distrobox stop name

To delete a container run the following:

$ distrobox rm name

To install a specific distro into a container run the following (in this example its Ubuntu):

$ distrobox create --image ubuntu:22.04

Installations can be fully customised as follows (in this example its a container called test running Gentoo with root access):

$ distrobox create -i docker.io/gentoo/stage3:latest -n test --root

If you need your container to have root access to the host then it is recommended that you use the --root flag over sudo distrobox.

Configuration

It is possible to configure Distrobox in 2 ways, either with a configuration file or by using Environment Variables.

Configuation file

Distrobox checks the following locations for config files, from least important to most important:

  • /usr/share/distrobox/distrobox.conf
  • /usr/etc/distrobox/distrobox.conf
  • /etc/distrobox/distrobox.conf
  • ${HOME}/.config/distrobox/distrobox.conf
  • ${HOME}/.distroboxrc

An example config file is as follows:

container_always_pull="1"
container_generate_entry=0
container_manager="docker"
container_image_default="registry.opensuse.org/opensuse/toolbox:latest"
container_name_default="test-name-1"
container_user_custom_home="$HOME/.local/share/container-home-test"
container_init_hook="~/.local/distrobox/a_custom_default_init_hook.sh"
container_pre_init_hook="~/a_custom_default_pre_init_hook.sh"
non_interactive="1"
skip_workdir="0"

Environment variables

The following variables are available and should be set using a per user Environment Variable:

DBX_CONTAINER_ALWAYS_PULL
DBX_CONTAINER_CUSTOM_HOME
DBX_CONTAINER_IMAGE
DBX_CONTAINER_MANAGER
DBX_CONTAINER_NAME
DBX_CONTAINER_ENTRY
DBX_NON_INTERACTIVE
DBX_SKIP_WORKDIR

See also