Toolbx: Fedora에서 여러 개발 컨테이너 관리
현대적인 리눅스 개발은 모든 것을 시스템에 직접 설치하는 전통적인 방식에서 벗어났습니다. 이제 전체 가상 머신의 부담이나 수동 컨테이너 관리의 복잡성을 처리하지 않고도 격리된 개발 환경을 만들 수 있도록 도와주는 도구들을 이용할 수 있습니다.
여기서 Fedora Toolbx가 등장합니다 – 호스트 시스템에서 직접 작업하는 것처럼 자연스러운 경험을 유지하면서 컨테이너화된 개발 환경을 쉽게 실행할 수 있게 해주는 도구입니다.
이 가이드에서는 Fedora Toolbx를 설정하고 사용하여 격리되고 재현 가능하며 관리하기 쉬운 개발 환경을 만드는 방법을 배웁니다. 또한 Toolbx가 기본 시스템을 깨끗하고 체계적으로 유지하면서 서로 충돌하는 의존성을 가진 여러 프로젝트에서 작업할 수 있도록 도와주는 방법을 살펴보게 됩니다.
이 가이드는 Toolbx의 기본을 쉽고 실용적인 설명으로 안내합니다. 먼저 Toolbx가 무엇인지, 그리고 왜 필요한지를 배우고, 그 다음에는 Fedora 시스템에 설치하고 설정하는 방법으로 넘어갑니다. 그 후에는 첫 번째 개발 컨테이너를 만들고 여러 환경을 효율적으로 관리하는 방법을 이해하게 됩니다.
마지막 섹션에서는 일상적인 개발 작업에서 Toolbx를 최대한 활용할 수 있도록 도와주는 일반적인 워크플로와 모범 사례를 보여줍니다.
참고: Toolbx는 원래 Fedora용으로 개발되었으며, Fedora 기반 시스템에서 가장 잘 작동합니다. 다른 현대적인 리눅스 배포판에서도 사용할 수 있지만, 이 가이드는 주로 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 컨테이너 만들기
강력한 Toolbx 컨테이너를 만드는 과정은 간단하며 단일 명령어로 완료할 수 있습니다. 이 명령어는 현재 사용 중인 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는 컨테이너화된 환경을 보고, 제어하고, 조직하는 데 도움이 되는 여러 명령어를 제공합니다.
컨테이너 목록 작성
생성한 모든 컨테이너를 보려면, list 명령어를 실행합니다:
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 여정에도 도움이 됩니다.









