Technologia Docker

 In Bez kategorii, Technicznie

Czym jest Docker?

Nasz główny projekt PLON pozwala użytkownikowi stworzyć swoje małe środowisko pracy na obliczenia numeryczne. Poświęciliśmy wiele godzin na znalezienie najlepszego sposobu realizującego powyższe założenie. Chcieliśmy czegoś innego niż zwykłe maszyny wirtualne, gdyż zużywają one zbyt wiele zasobów. Jednocześnie zależało nam na możliwości utworzenia środowiska ze wszystkimi potrzebnymi zależnościami. Idealnym rozwiązaniem okazał się Docker.
Jest to platforma pozwalająca na budowanie, przenoszenie i uruchamianie rozproszonych aplikacji. Co najważniejsze aplikacje te są pakowane do kontenera z wszystkimi zależnościami potrzebnymi do uruchomienia; kod, środowisko uruchomieniowe, narzędzia systemowe, biblioteki systemowe – wszystko co można zainstalować na serwerze. Działa on jak bardzo lekka maszyna wirtualna, z tą różnicą, że Docker nie potrzebuje całego systemu operacyjnego, uruchamia się on jako niezależny, odizolowany proces w systemie hosta.

 

wirtualnamaszyna

Maszyny wirtualne

kontener

Kontenery Dockerowe

 

 

 

 

 

 

 

 

 

 

 

 

Obrazy i kontenery

Podstawową komendą, która inicjuje pracę z dockerem jest:

container_explainer

Tworzy ona kontener z hermetycznym systemem operacyjnym (linux). Następnie implementuje w nim utworzony przez nas wcześniej obraz zawierający kod źródłowy aplikacji (w powyższym przykładzie obraz hello-world). Od tej chwili nasza aplikacja powinna być dostępna w systemie operacyjnym hosta. Logika, backend i wszelkie zależności software’owe dostępne są tylko w kontenerze, w żaden sposób nie wpływają na system użytkownika. Komende tą możemy wzbogacić dodając wiele więcej parametrów tj.:

  • –name (nazwa kontenera)
  • –restart=always (uruchamianie kontenera przy każdym starcie serwera)
  • –link=”” (powiązanie innych kontenerów)
  • -m 500M (ograniczenie pamięci do 500 Mb)

Docker Hub

Kiedy nasz system informatyczny jest gotowy i przetestowany możemy pochwalić się nim poprzez Docker Hub. Jest to serwis bazujący na chmurze, w której możemy udostępniać nasze rozwiązania lub pobierać oprogramowanie innych użytkowników.

Docker Hub zapewnia:

    • Repozytorium obrazów dockerowych – oficjalne i prywatne obrazy, a także panel zarządzania naszym oprogramowaniem
    • Integracja z Githubem lub Bitbucket – automatycznie budowanie nowych obrazów przy każdej zmianie kodu źródłowego
    • Wsparcie dla organizacji – możliwość pracy w zespole; zarządzanie dostępem

dockerhub

Jeżeli podczas budowania kontenera z aplikacją, docker nie znajdzie wskazanego obrazu w systemie, to automatycznie pobierze go z repozytorium.

Korzyści pracy z Dockerem

Docker wnosi wiele usprawnień i udogodnień. Narzędzie te pozwala na łatwe wdrożenie systemu na zewnętrznym serwerze z zapewnieniem jego skalowalności. Jego hermetyczne środowisko zapewnia odpowiednie bezpieczeństwo systemu poprzez separacje usług.
Wspiera najpopularniejsze systemy operacyjne -Ubuntu, Mac OS X czy Windows. Dodatkowo dla Windows i Mac OS X udostępnia intuicyjne GUI do zarządzania kontenerami.

browse-images

Kolejnym udogodnieniem jest rozbudowane REST API, dzięki któremu możemy bez problemu zarządzać kontenerami poprzez metody HTTP, jesteśmy w stanie wywołać właściwie każdą komendę dockerową używając odpowiednich requestów.

Świetnie nadaje się do integracji z gitem używając gitlab CI. W łatwy sposób możemy sprawić aby każda zmiana w repozytorium Gita przebudowywała system i udostępniała go na zewnętrznym serwerze.


 

Docker w Ermlab

Nasza firma posiada swoje repozytorium obrazów dockerowych, które jest ogólnodostępne. Na chwile obecną udostępniamy narzędzie nginx-lua-proxy – w pełni funkcjonalne proxy z użyciem nginx i baze danych redis (https://hub.docker.com/r/ermlab/nginx-lua-proxy/). Niebawem udostępnimy również Scrumlaba -rozwiązanie integrujące gita z scrumem.

Wykorzystujemy również technologie dockerową Swarm jako cluster kontenerów, więcej o tym w następnym wpisie…

Źródło :

https://www.docker.com/

Recommended Posts