Yeni Başlayanlar İçin 12 İlginç Docker Projesi Fikri [2022]

Yayınlanan: 2021-01-07

Günümüzde uygulamalar artık DevOps'tan önceki gibi geliştirilmiyor ve dağıtılmıyor. DevOps, BT ve yazılım endüstrisinde ana akım haline geldiğinden beri, operasyonel altyapıyı kökten değiştirdi. Artık Geliştiriciler ve Operatörler, uygulamaları hızlı ve verimli bir şekilde oluşturmak, test etmek ve dağıtmak için birlikte çalışıyor. Docker tam da bu resme uyuyor.

Docker, uygulamaları ve ortamlarını herhangi bir ortamda ve makinede sorunsuz bir şekilde depolanabilen ve dağıtılabilen daha küçük parçalara ayırmanıza olanak tanıyan bir konteynerleştirme yazılımı veya daha doğrusu bir PaaS aracıdır. Kapsayıcılaştırma ile birden çok kapsayıcının (uygulamalar, sistem dosyaları ve ortam dahil) tüm kaynakları paylaşmadan tek bir sanal makinede sorunsuz çalışması.

Sonuç olarak, aynı sanal makinede birden çok uygulamayı çalıştırabilirsiniz; burada her uygulama kendi işletim sistemine, CPU'ya, belleğe, depolamaya ve diğer önemli kaynaklara sahipmiş gibi çalışır.

Docker ekosistemi, Moby, Kubernetes ve Containerd olmak üzere dört ana projeden oluşur. Ancak, hepsi bu kadar değil – Docker'da bu üç projeden çok daha fazlası var. Docker topluluğu , her gün hem Docker ile hem de Docker için sınıfının en iyisi projeler ve araçlar geliştirmek için aktif olarak çalışır, böylece dünya çapındaki Geliştiriciler her yerde çalışabilen uygulamalar oluşturup dağıtabilir. DevOps öğrenmek istiyorsanız Docker öğrenmeniz gereken önemli bir bölümdür.

Swiggy, Quora, IMDB ve daha fazlası gibi uygulamalar oluşturmayı öğrenin

Bu gönderide, her hevesli Geliştiricinin bilmesi gereken en iyi Docker projelerinden bazılarını vurgulayacağız!

İçindekiler

En İyi Docker Proje Fikirleri

1. RancherVM

Docker kullanan herkes muhtemelen Rancher'ın ne olduğunu bilir. Docker Swarm , Kubernetes ve Mesos gibi en yaygın kullanılan konteyner düzenleme ve zamanlama çerçevelerinden bazılarını içeren bir hizmet olarak konteyner tedarikçisidir . RancherVM, bir Docker kapsayıcısında bir VM çalıştırmanıza izin veren Rancher'ın daha az bilinen projelerinden biridir. Genel anahtarları, hesaplama düğümlerini, VM'leri yönetmek ve bir web tarayıcısından VNC konsollarına erişmek için bir Web Kullanıcı Arabirimi ile donatılmıştır.

RancherVM ile, VM Pod'ları olarak da bilinen Kubernetes pod'larının içinde çalışan VM'ler oluşturabilirsiniz. Her VM bölmesi, bir sanal makine örneği çalıştıran bir kapsayıcı içerir. Şu anda RancherVM yalnızca KVM görüntülerini desteklemektedir. Böylece, herhangi bir KVM görüntüsünü bir Docker görüntüsü olarak paketleyebilir, herhangi bir Docker kayıt defterini (örnek, DockerHub) kullanarak dağıtabilir ve RancherVM üzerinde çalıştırabilirsiniz.

Ayrıca RancherVM, Kubernetes API'sini Özel Kaynak Tanımları (CRD'ler) ile genişletir. Hangi temel görüntünün, ne kadar hesaplama kaynağının ve bir SSH oturumu başlatmak için hangi anahtar çiftlerinin yetkilendirildiğini belirten bir VirtualMachine CRD belirtimi tanımlayabilirsiniz. Ardından, bir Kubernetes denetleyicisi, sizin tarafınızdan sağlanan özelliklere göre VM pod'ları oluşturacak ve aynısını VirtualMachine CRD durumunda görüntüleyecektir.

Daha fazlasını öğrenin: Yeni Başlayanlar İçin En İyi 10 Heyecan Verici DevOps Projesi [2020]

2. Dockercraft

Kasım 2015'te Microsoft, Dockercraft'ı halkın gözü önünde yayınladı. Microsoft'un 2,5 milyar ABD Doları karşılığında satın aldığı popüler bir oyun olan Minecraft'ta geliştiricilerin Docker kapsayıcılarını yönetmelerine izin vermek için açıkça tasarlanmış GitHub'da açık kaynak olarak piyasaya sürüldü !

GitHub'a göre Dockercraft , Minecraft'ın 3D ortamında "Docker kapsayıcılarını görselleştirmek ve yönetmek için basit bir Minecraft Docker istemcisidir". Minecraft'ta uygulanan tam olarak karmaşık bir Docker yöneticisi değil, daha ziyade Docker kapsayıcılarında anahtarları görselleştirmenin ve çevirmenin basit bir yolu.

Dockercraft'ı kullanmak için PC'nizde Minecraft'ın tam sürümünün olması gerektiğini unutmamak önemlidir. Zaten sahipseniz, Dockercraft'ı Github'dan indirebilirsiniz . Kurulumu tamamladıktan sonra, bir Dockercraft kapsayıcısını çalıştırmanız ve özel bir Minecraft sunucusu olan Cuberite'e katılmanız gerekir.

3. Şarap

Docker'ın en büyük dezavantajı, Dockerized uygulamaların çapraz platform olmamasıdır, yani Linux'ta bir Docker Windows uygulamasını yerel olarak çalıştıramazsınız. Bu sorunu çözmek için Wine oluşturuldu. Wine on Docker, Windows uygulamalarının dünyanın herhangi bir yerinden yerel bir uygulamanın çalışması gibi Linux işletim sisteminde çalışmasını sağlamak için geliştirildi. Docker'da Wine olarak bilinirken GitHub'da buna Docker-Wine diyoruz.

Wine , Linux'ta Windows uygulamalarını desteklemek için Wine uyumluluk katmanını kullanır. Wine , hem yerel hem de uzaktan destekli Dinamik Video sürücüleri ve VirtualGL ile birlikte geldiğinden, kullanıma hazır Nvidia kartları ve Nvidia sürücüleri ve hatta Mesa sürücülerini kullanan diğer kartlarla iyi performans göstermelidir. Wine'ı, kurmuş olabileceğiniz sürücülere otomatik olarak uyum sağlayacak şekilde yapılandırabilirsiniz, ancak bunlar şubeniz için en yeni sürücülerdir.

4. Docker-Mon

Şu anda, Docker görüntüleri için yalnızca bir avuç izleme hizmeti var, örneğin, Tersane . Geliştiricilerin/programcıların, kabuk içindeki tüm temel gereksinimlere erişmelerine izin veren araçları sevdikleri de iyi bilinen bir gerçektir. Docker-Mon, böyle bir konsol Docker izleme aracıdır. Docker-mon, kabuk merkezli bir gösterge panosu çerçevesi olan kutsanmış-katkıya dayalıdır.

Bu proje hala devam eden bir çalışmadır ve henüz başlatılmamış olan liman işçisi istatistikleri özelliğine dayanmaktadır . Docker-Mon'u kullanmak için ya bir ana yapıya ya da yakında çıkacak olan v1.5.0'a ihtiyacınız olacak (v1.5.0-rc1 için lansmanı buradan kontrol edebilirsiniz ) .

5. Yolcu-Liman Görevlisi

Phusion Passenger'ın Rails geliştiricilerinin favorisi olduğunu hepimiz biliyoruz . Bu uygulama sunucusunun birincil amacı, geliştiricilerin uygulamalarını sorunsuz bir şekilde çalıştırabilecekleri uygun bir ortam oluşturmaktır. Bu fikir, Passenger-Docker projesinin yaratılmasına yol açan şeydir. Amaç, Docker'ı üretim ortamlarında uygulamak isteyen geliştiriciler için mantıklı bir varsayılan temel görüntü geliştirmekti.

Passenger-Docker , Ruby, Python, Node.js ve Meteor web uygulaması görüntüleri için temel olarak hizmet etmek üzere tasarlanmış bir Docker görüntüleri paketidir. Phusion Passenger'ın temel mantrasını sürdüren Passenger-Docker projesi, web uygulamaları için Docker görüntüleri oluşturma sürecini basitleştirmeyi ve hızlandırmayı amaçlıyor.

6. KubeVirt

KubeVirt, Kubernetes için bir VM yönetim eklentisidir. Kubernetes üzerinde sanallaştırma çözümleri oluşturmak için ortak bir zemin sunmak üzere geliştirildi. Esasen Kubernetes, diğer altyapı türlerini değil, kapsayıcıları yönetmek için oluşturuldu. Ancak, VM kümelerini düzenlemek için Kubernetes'i kullanabilirsiniz. KubeVirt'in yaptığı budur - VM'leri sorunsuz bir şekilde destekleyebilmesi için Kubernetes'e ekstra işlevler ekler.

KubeVirt, Kubernetes'in Özel Kaynak Tanımları API'si aracılığıyla ek sanallaştırma kaynağı türlerini dahil ederek Kubernetes'in işlevlerini genişletmeyi amaçlar . Önceden tanımlanmış bir VM oluşturmak, bir VM başlatmak, bir VM'yi durdurmak, bir VM silmek ve ayrıca bir Kubernetes kümesinde bir VM planlamak için KubeVirt'i kullanabilirsiniz. Ancak KubeVirt hala devam eden bir çalışma.

Devamını okuyun: Kubernetes Networking: Ağ Modelini Anlamak İçin Eksiksiz Bir Kılavuz

7. Yuva

Docket , BitTorrent aracılığıyla yıldırım hızında dağıtımları kolaylaştıran özel bir Docker kayıt defteridir. Docker görüntülerini büyük bir makine kümesinde etkileyici bir hızda dağıtmanıza olanak tanır. Docket, Gopher Gala Golang 48 saatlik hackathon'da 48 saatte tasarlandı ve geliştirildi! Golang'da yazılan Docket, kullanıcı dostudur ve özel Docker kayıt defterinizle iyi çalışabilir.

Docket üç ana bileşenden oluşur –

  • Docket Registry: Kayıt defteri işlevi gören bir REST hizmetidir. İstemciden Docker görüntü tarball'larını alabilir, meta verileri bir veritabanında saklayabilir ve bunlardan torrentler oluşturabilir ve bunları tohumlayabilir.
  • Docket Client: Son kullanıcının etkileşimde bulunduğu arayüzdür. Kayıt defterindeki kullanılabilir görüntüleri görüntülemenize, kayıt defterine bir görüntü göndermenize ve kayıt defterinden bir görüntü çekmenize olanak tanır (bu, bir BitTorrent dağıtımını tetikler).
  • BitTorrent Tracker: Docket'in BYOT (tracker'ınızı getirin) özelliğine sahip olmasına rağmen, BitTorrent'i izlemek için opentracker yüklemenizi öneririz .

8. Konteyner Taşıma Aracı (CMT)

Docker kapsayıcılarıyla ilgili iyi bir şey, taşınabilir olmalarıdır, olduğu gibi, Docker'ın kurulu olduğu herhangi bir ana bilgisayar türünde çalışabilirler. Ancak Docker, çalışan kapsayıcıları bir ağ üzerinden bir kümeden diğerine taşımanıza izin veren yerleşik özellikten yoksundur. Zorluklara ek olarak, Kontrol Noktası ve Geri Yükleme (CR), genel olarak kapsayıcı kullanıcıları için mevcut olmayan nispeten yeni bir özelliktir. CR, işlevselliği hakkında bir düzeyde anlayış gerektirir ve genellikle, CR işlevselliği konusunda bilgili olmayan çoğu kullanıcı, kaynak ve hedef ana bilgisayar arasındaki farklılıklar/sınırlamalar nedeniyle CR gerçekleştirirken hata alır.

Container Migration Tool veya CMT, bu geçiş sorunuyla mücadele etmek için özel olarak geliştirilmiştir. CMT'nin yaratılmasının ardındaki fikir, geçiş öncesi doğrulamalar gerçekleştirerek ve uygun hedef ana bilgisayarları otomatik olarak keşfederek kapların farklı ana bilgisayarlar arasında canlı geçişini kolaylaştıran Docker veya runC ile kullanılabilen harici bir komut satırı aracı oluşturmaktı.

9. dockerfile_lint

Linterler, önden bir alet zincirinin geliştirilmesinde çok önemli bir bileşendir. JavaScript geliştiricileri tarafından yaygın olarak kullanılırlar ve çok sayıda geliştirici paylaşılan bir kod temeli üzerinde çalışırken özellikle kullanışlıdır. dockerfile_lint , Dockerfiles için kural tabanlı bir linterdir .

Dockerfile_lint kurallarını, dosya sözdizimini, keyfi anlambilimi ve kural dosyası yazarı tarafından belirlenen en iyi uygulama özniteliklerini denetlemek için kullanabilirsiniz. Ayrıca, LABEL kurallarını Docker görüntülerine karşı kontrol etmek için linter'i kullanabilirsiniz. Kural dosyaları YAML ile yazılmıştır . Tüm kurallar normal ifadeler kullanılarak uygulanır ve aynı anda Dockerfile'ın bir talimatı üzerinde çalışabilirler. Kural dosyası dört bölümden oluşur –

  • Profil bölümü: Kullanıcının belirli bir Dockerfile için uygun bir kural dosyası seçmesine yardımcı olan kural dosyası hakkında gerekli bilgileri sağlar.
  • Genel bölüm: Genel sözdizimi kurallarını içerir.
  • Satır kuralı bölümü: Dockerfile'de verilen bir talimatta çalıştırılması gereken kuralları içerir. Her talimatın sözdizimini kontrol etmek için kurallar vardır.
  • Gerekli talimat bölümü: Geçerli sayılabilmesi için Dockerfile'de bulunması gereken talimatların bir listesini içerir.

10. Docker karışımı

Dockermix , çok kapsayıcılı Docker ortamlarını geliştirmek ve yönetmek için kullanılan bir komut satırı aracıdır. Bu projede kapsayıcı kümeleri, Docker API'sinde bulunan seçenekleri taklit eden YAML biçiminde tanımlanır. Dockermix'i yaratmanın ardındaki amaç, geliştiricilerin test ve geliştirme için karmaşık çok düğümlü ortamları zahmetsizce başlatmasına, düzenlemesine ve dağıtmasına izin vermekti.

Dockermix projesi, gelişimi Toscanini organizasyonu altında ilerlediği için şimdi Maestro olarak yeniden adlandırıldı . Güncel kaynak koduna ulaşmak için Maestro projesini inceleyebilirsiniz .

11. Docker Yemek Kitabı

Docker Cookbook , Docker'ı kurmak ve Docker kapsayıcıları oluşturmak, yönetmek ve çalıştırmak için gerekli tüm kaynakları içerir. Bu Docker projesi yalnızca Docker, Inc. tarafından dağıtılan Docker konteyner motoruyla ilişkilidir ve Docker ekosistem araçlarına veya Cgroups veya AUFS gibi diğer teknolojilere yönelik değildir.

Docker Cookbook'u kullanmak için, makinenizde Chef v12.15 veya sonraki bir sürümü yüklü olmalıdır. Yemek Kitabı, Amazon Linux, Fedora, CentOS 7, Debian 8/9 ve Ubuntu 14.04/16.04 dahil olmak üzere birden fazla platform için destek sunar. Ayrıca, yukarı akış Docker paket havuzlarını otomatik olarak kurabilir.

12. Dokku

Dokku , şimdiye kadar geliştirilmiş en küçük PaaS uygulaması olan Docker destekli bir mini Heroku'dur. Bu PaaS çözümü, kullanıcıların uygulamaları ayrı bir sunucuda bir üretim ortamına yapılandırmasına ve dağıtmasına olanak tanır. Geliştiricilerin uygulamaların tüm yaşam döngüsünü oluşturmasına ve yönetmesine yardımcı olmak için Docker'ı kullanır.

Dokku'yu herhangi bir makineye kurabilir ve hatta ucuz bulut sağlayıcılarında kullanabilirsiniz. Ek olarak, Dokku eklentilerini herhangi bir dilde yazabilir, çevrimiçi olarak paylaşabilir ve mevcut eklentileri genişletebilirsiniz.

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

toparlamak

Bunlar, temeli Docker ile geliştirilmiş çok sayıda projeden sadece birkaçı. Bir sonraki projeniz için tüm bu Docker araçlarına ihtiyacınız olmasa da, çok sayıda seçeneğiniz olduğunu bilmek güzel!

Büyük veriler hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saat zorlu eğitim, 9+ proje ve ödev, IIIT sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. -B Mezunu statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Geleceğin Kariyerine Hazırlanın

Tam Yığın Geliştirmede Executive PG Programına Şimdi Başvur