- 도커 이미지를 독립 실행형, 포터블한 바이너리로 컴파일하는 도구
- 사용자들에게
docker run,pip install,npm i등의 명령어 없이 실행 가능한 바이너리를 제공 가능
특징
- 도커 이미지를 이식 가능한 바이너리로 컴파일.
- 루트 권한이 필요 없는 컨테이너.
- MacOS와 Windows 지원(QEMU 사용) : 예정
- x86_64 지원 (arm64 지원 예정)
- 인자 지원
-e를 사용하여 환경 변수 지정 지원.-v를 사용하여 볼륨 지정 지원.
사용 방법
- 최신 릴리스에서 dockerc 설치.
- 도커 허브의 이미지 또는 로컬 도커 데몬 저장소의 이미지를 사용하여 출력 바이너리 생성.
- 생성된 바이너리는 일반 바이너리처럼 호출 가능.
-e와-v옵션을docker run사용 시와 같은 방식으로 지정 가능.- 컨테이너 내에서 실행되는 네트워크 서비스에 직접 접근 가능,
-p지정 필요 없음. - 이미지 로딩에는 Skopeo 사용, 다른 위치에 대해서는 해당 문서 참조.
GN⁺의 의견
- dockerc는 도커의 사용성을 크게 향상시킬 수 있는 도구로, 사용자가 복잡한 설치 과정 없이 애플리케이션을 실행할 수 있게 해줌. 이는 특히 비기술 사용자에게 매우 유용할 수 있음.
- 도커 이미지를 바이너리로 컴파일하는 기능은 배포 및 배치를 단순화하며, 이는 개발자와 시스템 관리자에게 시간 절약과 효율성을 제공함.
- 그러나 이 기술이 널리 채택되기 위해서는 보안, 성능 및 호환성과 관련된 문제들이 충분히 해결되어야 함. 예를 들어, 컴파일된 바이너리가 원본 도커 이미지만큼 안전한지, 모든 시스템에서 원활하게 작동하는지 등의 검증이 필요함.
- 도커와 유사한 기능을 제공하는 다른 프로젝트로는 Podman이 있으며, 이는 루트 권한 없이 컨테이너를 실행할 수 있는 기능을 제공함.
- dockerc를 도입할 때는 기존의 도커 워크플로우와의 통합, 이미지의 업데이트 및 관리 방법, 그리고 컴파일된 바이너리의 크기와 성능 등을 고려해야 함. 이 기술을 선택함으로써 얻을 수 있는 이점은 배포의 단순화와 사용의 용이성이지만, 반면에 컴파일 과정에서 발생할 수 있는 오버헤드와 잠재적인 호환성 문제를 신중히 고려해야 함.