프로젝트 소개

container는 Mac에서 Linux 컨테이너를 경량 가상 머신으로 생성하고 실행하기 위한 Apple의 명령줄 도구이다. Swift로 작성되었으며 Apple Silicon에 최적화되어 있다. 이 도구는 OCI 호환 컨테이너 이미지를 소비하고 생성하므로, 이미지를 표준 컨테이너 레지스트리에서 가져오거나 푸시할 수 있으며 다른 OCI 호환 애플리케이션에서 실행할 수 있다. 내부적으로는 저수준 컨테이너, 이미지 및 프로세스 관리를 위해 Containerization Swift 패키지에 의존한다. 요구 사항 및 플랫폼 지원: Apple Silicon Mac이 필요하며, 이 도구는 해당 릴리스의 가상화 및 네트워킹 기능을 활용하는 macOS 26에서 지원된다. 이전 macOS 버전은 지원되지 않는다. 설치는 GitHub 릴리스 페이지의 서명된 설치 패키지 파일을 통해 수행되며, 파일은 /usr/local 아래에 배치된다. 시스템 서비스는 `container system start`로 시작된다. `container run --rm alpine echo hello`를 사용하여 첫 번째 컨테이너를 실행할 수 있으며, 이는 alpine 이미지를 가져와 경량 Linux VM에서 실행하고 출력을 인쇄한 후 종료 시 컨테이너를 제거한다. 업그레이드와 다운그레이드는 서명된 패키지를 다시 설치하거나 설치된 update-container.sh 스크립트를 사용하여 처리한다. 기존 서비스를 먼저 중지해야 한다. 다운그레이드하려면 현재 버전을 제거해야 하며, -k 플래그로 사용자 데이터를 유지하거나 -d로 제거할 수 있다. 제거는 동일한 데이터 유지 옵션을 가진 uninstall-container.sh를 사용한다. 문서에는 간단한 웹 서버 이미지를 빌드, 실행 및 게시하는 가이드된 튜토리얼, 방법 가이드, 기술 개요, 전체 명령어 레퍼런스, 빌드 지침 및 생성된 API 문서가 포함된다. 프로젝트의 기여 가이드를 통해 기여를 환영한다. 이 프로젝트는 활발히 개발 중이며, 릴리스 버전은 시맨틱 버전이 아닌 제품 버전이다. CLI 호환성은 일반적으로 주요 릴리스 내에서 유지되지만, 때로는 파괴적인 변경이 필요할 수 있다. k8s 하위 명령어와 같은 실험적 기능은 후방 호환성 보장 없이 변경될 수 있다. container-apiserver XPC API는 주요 버전 내에서 전방 및 후방 호환성을 유지하지만, 다른 비공개 XPC 헬퍼는 버전 간 호환성을 보장하지 않는다. 애플리케이션 데이터는 전방 호환성만 제공하며, 하나의 주요 버전 내에서 보장되고, 더 새로운 주요 버전으로 업그레이드하려면 특정 업그레이드 경로가 필요할 수 있다.