DistroBox – Linux 터미널 내에서 모든 Linux 배포판 실행
Distrobox는 Docker 또는 Podman을 사용하여 선호하는 Linux 배포판에서 컨테이너를 만들고 관리할 수 있는 유용한 도구입니다. 실행된 컨테이너는 호스트 시스템과 고도로 통합되어 외부 저장소, USB 장치 및 그래픽 응용 프로그램과 함께 사용자의 HOME 디렉터리를 공유할 수 있습니다.
Distrobox는 OCI 이미지를 기반으로 하며 podman 및 OCI 표준 컨테이너 기술을 기반으로 구축된 ToolBox와 유사한 개념을 구현합니다.
이 가이드에서는 Linux 터미널 내에서 Linux 배포를 실행하기 위해 DistroBox를 설치하는 방법을 보여줍니다. 이 가이드에서는 Fedora 34를 실행하고 있습니다.
계속하기 전에 다음 사항이 있는지 확인하십시오.
- 최소 podman 버전: 2.1.0 또는 docker 버전: 18.06.1.
1단계: Linux 시스템에 DistroBox 설치
DistroBox를 설치하는 것은 케이크 조각입니다. 설치 스크립트를 다운로드하고 실행하는 다음 curl 명령을 실행하기만 하면 됩니다.
$ curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

Fedora에서 DistroBox는 Copr 저장소에서 사용할 수 있습니다. 따라서 Fedora에서 Copr 저장소를 활성화하십시오.
$ sudo dnf copr enable alciregi/distrobox

Copr 리포지토리가 추가되면 DNF 패키지 관리자를 사용하여 Distrobox를 설치합니다.
$ sudo dnf install distrobox

2단계: 이미지에서 컨테이너 생성
Distrobox가 설치되었으므로 이제 컨테이너 생성 및 실행을 시작할 수 있습니다. 이미지를 가져오고 이미지에서 컨테이너를 실행하려면 다음과 같이 distrobox-create 명령을 사용합니다.
$ distrobox-create --name container-name --image os-image:version
이 예에서는 Debian 10 이미지에서 debian10-distrobox라는 컨테이너를 생성합니다.
$ distrobox-create --name debian10-distrobox --image debian:10
이 명령은 Docker Hub에서 Debian 10 이미지를 가져오고 debian10-distrobox라는 컨테이너를 만듭니다.
Distrobox 컨테이너에서 지원하는 운영 체제 및 버전의 전체 목록을 보려면 Distrobox 프로젝트 페이지를 방문하세요.

Distrobox로 만든 컨테이너를 나열하려면 다음을 실행합니다.
$ distrobox-list

3단계: Distrobox 컨테이너 액세스
새로 생성된 Linux 컨테이너의 셸에 액세스하려면 다음과 같이 distrobox-enter 명령을 사용합니다.
$ distrobox-enter --name container-name
예를 들어 컨테이너에 액세스하려면 다음 명령을 실행합니다.
$ distrobox-enter --name debian10-distrobox
여기에서 컨테이너 내부에서 명령을 실행할 수 있습니다. 예를 들어 다음 명령은 OS 버전을 확인합니다.
$ cat /etc/os-release

응용 프로그램을 설치할 수도 있습니다. 여기에서 Neofetch 유틸리티 도구를 설치합니다.
$ sudo apt install neofetch
Neofetch가 설치되면 다음과 같이 실행합니다.

4단계: Distrobox 컨테이너에서 명령 실행
표시된 구문을 사용하여 셸에 액세스하는 대신 Distrobox 컨테이너에서 명령을 직접 실행할 수 있습니다.
$ distrobox-enter --name container-name -- command
다음 명령에서는 컨테이너의 가동 시간을 표시하고 패키지 목록을 각각 업데이트합니다.
$ distrobox-enter --name debian10-distrobox -- uptime $ distrobox-enter --name debian10-distrobox -- sudo apt update

5단계: 컨테이너에서 호스트로 애플리케이션 내보내기
호스트 시스템으로 이식하려는 응용 프로그램이 Distrobox 컨테이너 내부에 있는 경우 distrobox-export 명령을 사용하여 수행할 수 있습니다. 먼저 컨테이너의 셸에 액세스합니다.
$ distrobox-enter --name container-name
여기에서는 스크린샷을 찍기 위한 무료 오픈 소스 크로스 플랫폼 도구인 Flameshot을 설치합니다.
$ sudo apt install flameshot
애플리케이션을 Fedora로 내보내려면 다음 명령을 실행합니다.
$ distrobox-export --app flameshot

컨테이너를 종료하려면 다음을 실행합니다.
$ logout
이제 Fedora 호스트 시스템으로 돌아갑니다. 어플리케이션 존재 여부를 확인하기 위해 아래와 같이 어플리케이션 메뉴를 이용하여 어플리케이션 검색을 진행합니다.

6단계: Distrobox 컨테이너 복제
경우에 따라 컨테이너 이미지의 복제본 또는 복제본을 생성해야 할 수 있습니다. 이를 달성하려면 먼저 podman 명령을 사용하여 실행 중인 컨테이너를 중지합니다.
$ podman stop container_ID
컨테이너 ID를 가져오려면 podman ps 명령을 실행하여 현재 실행 중인 컨테이너를 나열합니다.
$ podman ps
컨테이너가 중지되면 다음과 같이 복제본을 생성할 수 있습니다. 이 예에서는 debian10-distrobox 배포판을 debian-10-clone이라는 클론으로 복제합니다.
$ distrobox-create --name debian-10-clone --clone debian10-distrobox

클론이 생성되었는지 다시 확인하려면 표시된 대로 Distrobox 컨테이너를 나열합니다.
$ distrobox-list

7단계: Fedora에서 Distrobox 관리
이 마지막 섹션에서는 podman을 사용하여 컨테이너를 관리하는 방법에 대해 간략하게 살펴보겠습니다.
모든 활성 컨테이너를 나열하려면 다음을 실행합니다.
$ podman ps

활성 및 종료된 실행 중인 모든 컨테이너를 나열하려면 다음을 실행하십시오.
$ podman ps -a
컨테이너를 중지하려면 다음 명령을 실행합니다.
$ podman stop container_ID
컨테이너를 제거하려면 먼저 컨테이너를 중지한 다음 제거해야 합니다.
$ podman stop container_ID $ podman rm container_ID

Distrobox는 소프트웨어 응용 프로그램과의 순방향 및 역방향 호환성을 허용하고 sudo 권한 없이 컨테이너 형태로 다양한 Linux 배포판을 시험해 볼 수 있는 편리한 유틸리티입니다.