DistroBox – Linux 터미널 내에서 모든 Linux 배포판 실행


Distrobox는 Docker 또는 Podman을 사용하여 선호하는 Linux 배포판에서 컨테이너를 만들고 관리할 수 있는 유용한 도구입니다. 실행된 컨테이너는 호스트 시스템과 고도로 통합되어 외부 저장소, USB 장치 및 그래픽 응용 프로그램과 함께 사용자의 HOME 디렉터리를 공유할 수 있습니다.

Distrobox는 OCI 이미지를 기반으로 하며 podman 및 OCI 표준 컨테이너 기술을 기반으로 구축된 ToolBox와 유사한 개념을 구현합니다.

이 가이드에서는 Linux 터미널 내에서 Linux 배포를 실행하기 위해 DistroBox를 설치하는 방법을 보여줍니다. 이 가이드에서는 Fedora 34를 실행하고 있습니다.

계속하기 전에 다음 사항이 있는지 확인하십시오.

  1. 최소 podman 버전: 2.1.0 또는 docker 버전: 18.06.1.
  2. 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 배포판을 시험해 볼 수 있는 편리한 유틸리티입니다.