첫째, Docker 는 때때로 임시 패키징 시스템 으로 여겨지고 사용되지만 실제로는 완전히 다른 문제를 해결합니다. Docker 는 프로그램 실행 에 관한 것 입니다. 도커의 시스템을 설명 할 수 있도록 서비스 가능 스케일링 의지 및 제어 떼 용기를. 데비안 패키지 는 프로그램 설치용이며 소프트웨어 버전 간의 종속성 을 처리 할 수 있습니다. 도커 하강 패키징 시스템으로 자격이없는 것은 확실합니다. 각“패키지”는 하나의 종속성 만 가질 수 있으며 시스템에는“재귀 빌드”옵션이 없으며 복잡한 버전 제약 조건을 지원하지 않습니다!
응용 프로그램 용 데비안 패키지 를 기꺼이 작성하려는 경우 Docker 를 사용 하여 응용 프로그램을 배포 할 수도 있습니다 . 이것은 apt_setup.sh
다음과 같은 구성 스크립트 를 사용하여 얻을 수 있습니다
apt-key add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
<YOUR RELEASE OFFICER PGP KEY GOES HERE>
EOF
cat >> /etc/apt/sources.list <<EOF
deb https://my.organisation.org/repo debian-jessie main
apt-get update -y
apt-get upgrade -y
EOF
그리고 Dockerfile
라인을 따라
ADD apt_setup.sh /root
RUN sh -ex /root/apt_setup.sh && rm /root/apt_setup.sh
RUN apt-get install -y my-node-js-package
(특정 상황에서는 노드 소스 저장소와 apt-transport-https 와 같은 일부 도우미 패키지를 apt_setup.sh
추가하여 더 복잡 할 수 있습니다 .)
따라서 데비안 패키지 와 Docker를 동시에 사용할 수 있습니다 .
내 직감 […]은 deb 패키지가 잘 맞으면 더 일반적 일 것이라고 말합니다.
이것은도 커가 왜 임시 패키징 시스템 으로 인기가 있고 왜 독창적이지 않은지 스스로에게 묻게하는 올바른 장애입니다 . (위 참조.)
특정 배포판의 "공식"패키징 시스템은 다른 많은 사람들이 일부 컴퓨팅 환경에 소프트웨어를 설치할 수있는 가능성 일뿐입니다. npm 또는 opam 과 같은 커뮤니티 특정 패키지 관리자 , pkgsrc 와 같은 포트 트리 및 일반 소스 코드 배포와 같은 다른 많은 소스가 있습니다 . 이러한 관점에서 애드혹 패키징 시스템 으로서 Docker 의 성공을 쉽게 이해할 수 있습니다.
이제 패키지 시스템으로서 Docker 이미지 보다 데비안 패키지 의 장점은 무엇 입니까? 설치시 종속성을 엄격하게 제어합니다. (업그레이드 및 다운 그레이드 가능성도 있지만 불변 서버 패턴을 구현하는 경우 실질적으로 중요하지 않습니다 .)
결론
단일 버전 (SaaS에 일반적인)으로 단일 제품 만 배포 한 경우 버전 관리 요구 사항이 매우 간단하며 애드혹 패키지 관리자 로 Docker 를 사용 하면 큰 결점이 없어야합니다. 단일 제품 또는 여러 제품의 여러 버전으로 작업하자마자, 버전 제약 문제의 복잡성으로 인해 해결해야 할 문제가 커지고 이에 대한 적절한 도구가 필요합니다. 데비안 패키지 또는 일부 구성 관리 시스템 일 수 있습니다. 다른 출처에서 소프트웨어를 혼합.