12 ciekawych pomysłów na projekty Docker dla początkujących [2022]

Opublikowany: 2021-01-07

Obecnie aplikacje nie są już opracowywane i wdrażane w sposób, w jaki były przyzwyczajone przed DevOps. Odkąd DevOps stał się głównym nurtem w branży IT i oprogramowania, radykalnie zmienił infrastrukturę operacyjną. Teraz programiści i operatorzy współpracują ze sobą, aby szybko i wydajnie tworzyć, testować i wdrażać aplikacje. Właśnie tam Docker pasuje do obrazu.

Docker to oprogramowanie do konteneryzacji, a dokładniej narzędzie PaaS, które umożliwia fragmentowanie aplikacji i ich środowisk na mniejsze porcje, które można przechowywać i wdrażać w dowolnym środowisku i na dowolnym komputerze w bezproblemowy sposób. Dzięki konteneryzacji wiele kontenerów (w tym aplikacje, ich pliki systemowe i środowisko) działa płynnie na jednej maszynie wirtualnej bez współdzielenia wszystkich zasobów.

W rezultacie możesz uruchomić wiele aplikacji na tej samej maszynie wirtualnej, gdzie każda aplikacja będzie działać tak, jakby posiadała swój system operacyjny, procesor, pamięć, pamięć masową i inne kluczowe zasoby.

Ekosystem Dockera obejmuje cztery główne projekty, a mianowicie Moby, Kubernetes i Containerd. To jednak nie wszystko – Docker to znacznie więcej niż te trzy projekty. Każdego dnia społeczność platformy Docker aktywnie pracuje nad opracowywaniem najlepszych w swojej klasie projektów i narzędzi zarówno z platformą Docker, jak i dla niej, aby programiści z całego świata mogli tworzyć i wdrażać aplikacje, które mogą działać w dowolnym miejscu. Jeśli chcesz nauczyć się DevOps, Docker jest ważną sekcją do nauczenia.

Naucz się tworzyć aplikacje, takie jak Swiggy, Quora, IMDB i nie tylko

W tym poście przedstawimy niektóre z najlepszych projektów Dockera, o których powinien wiedzieć każdy początkujący programista!

Spis treści

Najlepsze pomysły na projekty Docker

1. RanczerVM

Każdy, kto używa Dockera, prawdopodobnie wie, czym jest Rancher. Jest to dostawca kontenerów jako usługi, który obejmuje szereg najpopularniejszych struktur orkiestracji i harmonogramowania kontenerów — Docker Swarm , Kubernetes i Mesos . RancherVM to jeden z mniej znanych projektów Ranchera, który umożliwia uruchamianie maszyny wirtualnej w kontenerze Docker. Jest wyposażony w interfejs sieciowy do zarządzania kluczami publicznymi, węzłami obliczeniowymi, maszynami wirtualnymi oraz do uzyskiwania dostępu do konsol VNC z przeglądarki internetowej.

Dzięki RancherVM możesz budować maszyny wirtualne działające w podach Kubernetes, znanych również jako pody maszyn wirtualnych. Każdy pod maszyny wirtualnej zawiera kontener z uruchomioną instancją maszyny wirtualnej. Obecnie RancherVM obsługuje tylko obrazy KVM. Możesz więc spakować dowolny obraz KVM jako obraz Docker, dystrybuować go za pomocą dowolnego rejestru Docker (na przykład DockerHub) i uruchomić go na RancherVM.

Ponadto RancherVM rozszerza Kubernetes API o niestandardowe definicje zasobów (CRD). Możesz zdefiniować specyfikację VirtualMachine CRD określającą, jaki obraz bazowy, ile zasobów obliczeniowych i jakie pary kluczy są autoryzowane do inicjowania sesji SSH. Następnie kontroler Kubernetes utworzy pody maszyn wirtualnych zgodnie z podanymi przez Ciebie specyfikacjami i wyświetli to samo w stanie VirtualMachine CRD.

Dowiedz się więcej: 10 najlepszych ekscytujących projektów DevOps dla początkujących [2020]

2. Dockercraft

W listopadzie 2015 r. Microsoft udostępnił Dockercrafta na oczach opinii publicznej. Został uruchomiony jako open-source na GitHub, wyraźnie zaprojektowany, aby umożliwić programistom zarządzanie ich kontenerami Docker w Minecraft , popularnej grze, którą Microsoft kupił za 2,5 miliarda dolarów !

Według GitHub , Dockercraft jest „prostym klientem Minecraft Docker do wizualizacji i zarządzania kontenerami Docker” w środowisku 3D Minecrafta. Nie jest to do końca skomplikowany menedżer Dockera zaimplementowany w Minecrafcie, ale raczej uproszczony sposób wizualizacji i przełączania przełączników w kontenerach Dockera.

Należy pamiętać, że aby korzystać z Dockercraft, musisz mieć na swoim komputerze pełną wersję gry Minecraft. Jeśli już go masz, możesz pobrać Dockercraft z Github . Po zakończeniu konfiguracji musisz uruchomić kontener Dockercraft i dołączyć do niestandardowego serwera Minecraft – Cuberite.

3. Wino

Największą wadą platformy Docker jest to, że aplikacje Docker nie są wieloplatformowe, co oznacza, że ​​nie można natywnie uruchomić aplikacji Docker Windows w systemie Linux. Aby rozwiązać ten problem, stworzono Wine . Wine on Docker został opracowany, aby umożliwić aplikacjom Windows uruchamianie w systemie Linux tak, jak aplikacja lokalna działałaby z dowolnego miejsca na świecie. W Dockerze jest znany jako Wine, podczas gdy w GitHub nazywamy go Docker-Wine.

Wine używa warstwy kompatybilności Wine do obsługi aplikacji Windows w systemie Linux. Ponieważ Wine jest dostarczane ze sterownikami Dynamic Video i VirtualGL z obsługą zarówno lokalną, jak i zdalną, powinno działać dobrze z gotowymi kartami Nvidia i sterownikami Nvidia, a nawet innymi kartami korzystającymi ze sterowników Mesa. Możesz skonfigurować Wine tak, aby automatycznie dostosowywało się do dowolnych sterowników, które zainstalowałeś, pod warunkiem, że są to najnowsze dla twojego oddziału.

4. Docker-Mon

Obecnie istnieje tylko kilka usług monitorowania obrazów Docker, na przykład Shipyard . Powszechnie wiadomo, że programiści/programiści uwielbiają narzędzia, które pozwalają im uzyskać dostęp do wszystkich podstawowych wymagań wewnątrz powłoki. Docker-Mon jest jednym z takich narzędzi do monitorowania konsoli Docker. Docker-mon jest oparty na błogosławionym contrib , frameworku pulpitu nawigacyjnego skoncentrowanym na powłoce.

Ten projekt jest wciąż w toku i opiera się na funkcji statystyk dokera, która nie została jeszcze uruchomiona. Tak więc, aby korzystać z Docker-Mon, będziesz potrzebować albo głównej wersji , albo nadchodzącej wersji 1.5.0 (możesz sprawdzić uruchomienie wersji 1.5.0-rc1 tutaj ).

5. Pasażer-Docker

Wszyscy wiemy, że Phusion Passenger jest ulubieńcem programistów Railsów. Głównym celem tego serwera aplikacji jest stworzenie odpowiedniego środowiska, w którym programiści mogą płynnie uruchamiać swoje aplikacje. To właśnie ta idea zapoczątkowała powstanie projektu Passenger-Docker. Celem było opracowanie rozsądnego domyślnego obrazu bazowego dla programistów, którzy chcą wdrożyć Docker w swoim środowisku produkcyjnym.

Passenger-Docker to pakiet obrazów platformy Docker zaprojektowany jako podstawy dla obrazów aplikacji internetowych w językach Ruby, Python, Node.js i Meteor. Utrzymując podstawową mantrę Phusion Passenger, projekt Passenger-Docker ma na celu uproszczenie i przyspieszenie procesu tworzenia obrazów platformy Docker dla aplikacji internetowych.

6. KubeVirt

KubeVirt to dodatek do zarządzania maszynami wirtualnymi dla Kubernetes. Został opracowany, aby zaoferować wspólną płaszczyznę do budowania rozwiązań wirtualizacyjnych na bazie Kubernetes. Zasadniczo Kubernetes został stworzony do zarządzania kontenerami, a nie innymi rodzajami infrastruktury. Możesz jednak użyć Kubernetes do organizowania klastrów maszyn wirtualnych. To właśnie robi KubeVirt – dodaje dodatkowe funkcje do Kubernetes, dzięki czemu może bezproblemowo obsługiwać maszyny wirtualne.

KubeVirt ma na celu rozszerzenie funkcjonalności Kubernetes poprzez włączenie dodatkowych typów zasobów wirtualizacji za pośrednictwem niestandardowego interfejsu API Kubernetes Resource Definitions . Możesz użyć KubeVirt, aby zbudować wstępnie zdefiniowaną maszynę wirtualną, uruchomić maszynę wirtualną, zatrzymać maszynę wirtualną, usunąć maszynę wirtualną, a także zaplanować maszynę wirtualną w klastrze Kubernetes. Jednak KubeVirt wciąż jest w toku.

Przeczytaj więcej: Kubernetes Networking: kompletny przewodnik po modelu sieci

7. Zamówienie

Docket to niestandardowy rejestr platformy Docker, który ułatwia błyskawiczne wdrażanie za pośrednictwem BitTorrenta. Umożliwia wdrażanie obrazów platformy Docker w dużym klastrze maszyn z imponującą szybkością. Docket został zaprojektowany i opracowany w 48 godzin w ramach 48-godzinnego hackathonu Gopher Gala Golang! Napisany w Golangu, Docket jest przyjazny dla użytkownika i może dobrze współpracować z Twoim prywatnym rejestrem Dockera.

Docket składa się z trzech głównych elementów –

  • Docket Registry: Jest to usługa REST działająca jako rejestr. Może odbierać paczki obrazów Docker od klienta, przechowywać metadane w bazie danych i tworzyć z nich torrenty, a także je umieszczać.
  • Klient Docket: Jest to interfejs, z którym współdziała użytkownik końcowy. Umożliwia przeglądanie dostępnych obrazów w rejestrze, przesyłanie obrazu do rejestru i pobieranie obrazu z rejestru (to uruchamia wdrożenie BitTorrent).
  • BitTorrent Tracker: Chociaż Docket posiada funkcję BYOT (przynieś swój tracker), zalecamy zainstalowanie opentrackera do śledzenia BitTorrenta.

8. Narzędzie do migracji kontenerów (CMT)

Dobrą rzeczą w kontenerach Docker jest to, że są przenośne, ponieważ mogą działać na dowolnym hoście, na którym zainstalowano Docker. Jednak Docker nie ma wbudowanej funkcji, która umożliwia przenoszenie działających kontenerów z jednego klastra do drugiego za pośrednictwem sieci. Aby dodać do wyzwania, Checkpoint & Restore (CR) jest wciąż stosunkowo nową funkcją, która nie jest ogólnie dostępna dla użytkowników kontenerów. CR wymaga pewnego poziomu zrozumienia jego funkcjonalności i zwykle większość użytkowników, którzy nie są dobrze zaznajomieni z funkcjonalnością CR, otrzymuje błędy podczas wykonywania CR ze względu na różnice/ograniczenia między hostem źródłowym a docelowym.

Narzędzie Container Migration Tool lub CMT zostało opracowane specjalnie w celu zwalczania tego problemu migracji. Ideą stojącą za stworzeniem CMT było stworzenie zewnętrznego narzędzia wiersza poleceń, które może być używane z Dockerem lub runC, które ułatwia migrację kontenerów na żywo między różnymi hostami poprzez przeprowadzanie walidacji przed migracją i automatyczne wykrywanie odpowiednich hostów docelowych.

9. dockerfile_lint

Linters są kluczowym elementem w rozwoju łańcucha narzędzi od samego początku. Są szeroko używane przez programistów JavaScript i są szczególnie przydatne, gdy wielu programistów pracuje na wspólnej bazie kodu. dockerfile_lint to oparty na regułach linter dla plików Dockerfile .

Za pomocą reguł dockerfile_lint można sprawdzić składnię pliku, dowolną semantykę i atrybuty najlepszych praktyk, które są określane przez program piszący plik reguł. Możesz także użyć lintera, aby sprawdzić reguły LABEL względem obrazów Dockera. Pliki reguł są napisane w YAML . Wszystkie reguły są zaimplementowane przy użyciu wyrażeń regularnych i mogą być uruchamiane na jednej instrukcji pliku Dockerfile na raz. Plik reguł składa się z czterech sekcji –

  • Sekcja Profil: Zawiera niezbędne informacje o pliku reguły, które pomagają użytkownikowi wybrać odpowiedni plik reguły dla określonego pliku Dockerfile.
  • Sekcja Ogólne: Zawiera ogólne zasady składni.
  • Sekcja reguł linii: Zawiera reguły, które muszą zostać uruchomione na danej instrukcji w pliku Dockerfile. Istnieją zasady sprawdzania składni każdej instrukcji.
  • Sekcja wymaganych instrukcji: zawiera listę instrukcji, które muszą istnieć w pliku Dockerfile, aby można je było uznać za prawidłowe.

10. Dockermix

Dockermix to narzędzie wiersza polecenia służące do tworzenia i zarządzania wielokontenerowymi środowiskami Docker. W tym projekcie zestawy kontenerów są zdefiniowane w formacie YAML, który emuluje opcje dostępne w Docker API. Celem stworzenia Dockermixa było umożliwienie programistom bezproblemowego uruchamiania, orkiestracji i wdrażania złożonych środowisk wielowęzłowych do testowania i rozwoju.

Projekt Dockermix został teraz przemianowany na Maestro , a jego rozwój został przeniesiony w ramach organizacji Toscanini. Aby uzyskać dostęp do aktualnego kodu źródłowego, możesz sprawdzić projekt Maestro .

11. Książka kucharska Dockera

Docker Cookbook zawiera wszystkie niezbędne zasoby do instalacji platformy Docker oraz budowania, zarządzania i uruchamiania kontenerów platformy Docker. Ten projekt platformy Docker jest powiązany tylko z aparatem kontenera platformy Docker, który jest dystrybuowany przez firmę Docker, Inc. i nie dotyczy narzędzi ekosystemu platformy Docker ani innych technologii, takich jak Cgroups lub AUFS.

Aby korzystać z Docker Cookbook, musisz mieć na swoim urządzeniu zainstalowaną wersję Chef w wersji 12.15 lub nowszej. Książka kucharska oferuje obsługę wielu platform, w tym Amazon Linux, Fedora, CentOS 7, Debian 8/9 i Ubuntu 14.04/16.04. Ponadto może automatycznie skonfigurować nadrzędne repozytoria pakietów Docker.

12. Dokku

Dokku to mini-Heroku oparte na Dockerze, najmniejsza implementacja PaaS, jaka kiedykolwiek została opracowana. To rozwiązanie PaaS umożliwia użytkownikom konfigurowanie i wdrażanie aplikacji w środowisku produkcyjnym na osobnym serwerze. Używa platformy Docker, aby pomóc programistom w tworzeniu i zarządzaniu pełnym cyklem życia aplikacji.

Możesz zainstalować Dokku na dowolnym komputerze, a nawet używać go na niedrogich dostawcach chmury. Dodatkowo możesz pisać wtyczki Dokku w dowolnym języku, udostępniać je online oraz rozszerzać już dostępne wtyczki.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Zawijanie

To tylko niektóre z wielu, wielu projektów, które zostały opracowane z Dockerem jako ich podstawą. Chociaż nie potrzebujesz wszystkich tych narzędzi Dockera do następnego projektu, dobrze jest wiedzieć, że masz wiele opcji!

Jeśli chcesz dowiedzieć się więcej o dużych zbiorach danych, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie programowania pełnego stosu, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadań, IIIT -B Status absolwenta, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Przygotuj się na karierę przyszłości

Złóż wniosek o program Executive PG w zakresie pełnego rozwoju stosu