İlk olarak, Docker bazen görülen ve bir olarak kullanılır geçici paketleme sisteminde, aslında tamamen farklı bir sorunu çözer: Docker hakkındadır çalışan programlar. Docker sistemi tanımlamak için izin verir hizmetleri edilebilir ölçekli iradesiyle ve kontrol etmek sürüleri konteynerlerin. Debian paketleri programları yüklemek içindir ve yazılım sürümleri arasındaki bağımlılıkları kaldırabilirler . Liman işçisi kesinlikle bir iniş paketleme sistemi olarak nitelendirilmemektedir: her “paket” in sadece bir bağımlılığı olabilir, sistemin “özyinelemeli derleme” seçeneği yoktur ve karmaşık sürüm kısıtlamalarını desteklemez!
Olası bir cevap , uygulamanız için bir Debian paketi yazmak istiyorsanız, uygulamanızı dağıtmak için Docker'ı da kullanabilirsiniz . Bu, aşağıdaki apt_setup.sh
gibi görünen bir yapılandırma komut dosyası ile gerçekleştirilebilir.
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
ve bir Dockerfile
çizgi boyunca
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
(Özel durumunuzda, düğüm kaynağı depolarını ve apt-transport-https gibi bazı yardımcı paketleri apt_setup.sh
ekleyerek daha karmaşık olurdu .)
Bu nedenle Debian paketleri ve Docker'ı aynı anda kullanmak gerçekten mümkün …
Bağırsaklarım […] bana deb paketleri iyi bir uyum olsaydı daha yaygın olacağını söylüyor
Bu, Docker'ın neden bir ad hoc ambalaj sistemi olarak popüler olduğunu kanıtlamasına neden olan doğru bir aksaklıktır , ancak bir tane olması amaçlanmamıştır. (Yukarıyı görmek.)
Belirli bir dağıtımın “resmi” paketleme sistemi, diğer bilgisayarların arasında bazı bilgi işlem ortamlarına yazılım yükleme olasılığıdır. Gibi toplum özgü paket yöneticileri gibi pek çok diğer kaynaklar vardır NPM veya opam, gibi liman ağaçları pkgsrc ve düz kaynak kod dağıtımı. Bu açıdan Docker'ı geçici bir paketleme sistemi olarak başarısını anlamak kolaydır :
Docker özellikleri bir kabuk komut dosyasına çok yakın ve nereden gelirse gelsin, kabuğu kullanarak yazılım yüklüyoruz.
Docker , ürettiği artefaktları barındıran “yerleşik” (ücretli) bir hizmet olan Docker Hub'a sahiptir .
Şimdi Debian paketlerinin Docker görüntüleri üzerindeki bir paket sistemi olarak gücü nedir? Kurulum sırasında bağımlılıklar üzerinde sıkı kontrol. (Yükseltme ve eski sürüme geçme olasılığı da mevcuttur, ancak değişmez sunucu desenini uyguluyorsak pratik bir önemi yoktur .)
Sonuç
Tek bir sürümde (SaaS için tipik olan) dağıtılan tek bir ürününüz varsa, sürüm yönetimi ihtiyaçlarınız çok basittir ve Docker'ı geçici bir paket yöneticisi olarak kullanmanın herhangi bir dezavantajı olmamalıdır. Tek bir ürünün veya birkaç ürünün çeşitli sürümleriyle çalışırken, çözmeniz gereken sürüm kısıtlamaları sorununun karmaşıklığı artar ve bunun için Debian paketleri veya bazı yapılandırma yönetim sistemi olabilecek uygun bir araca ihtiyacınız vardır. farklı kökenlerden karıştırma yazılımı.