Docker – dlaczego warto korzystać?

Docker jest narzędziem coraz częściej wybieranym przez programistów. Jego przewaga nad wirtualizacją polega na tym, że pozwala on na uruchomienie aplikacji w wydzielonych kontenerach. Co za tym idzie? Oczywiście większa wydajność.


Działanie na dockerze pozwala na uruchomienie wskazanych procesów aplikacji w wydzielonych kontenerach, które z punktu widzenia aplikacji są odrębnymi instancjami.

Każdy kontener posiada:

  • osobny obszar pamięci,
  • osobny interface sieciowy z adresem IP,
  • osobny obszar wydzielony na dysku z systemu operacyjnego i wszystkich zależności.

Powiedzmy, że w naszej codziennej pracy potrzebujemy środowisko LAMP do jednego projektu i środowisko z JAVA-ą dla drugiego. Oba środowiska są osobnymi procesami z odpowiednimi połączeniami sieciowymi między kontenerami i tak np. dla środowiska LAMP: Linux, Apache i PHP będzie jednym kontenerem, zaś MySQL będzie drugim – oba powiązane połączeniem sieciowym. Dla drugiego środowiska z JAVA-ą tworzymy osobny kontener nie powiązany z żadnym. Normalnie przy użyciu wirtualizacji dla obu środowisk byłyby potrzebne dwie osobne maszyny wirtualne, które zabierały by sporo zasobów na maszynie lokalnej.

W przypadku pracy z kilkoma projektami dla każdego potrzebowalibyśmy osobnego środowiska, a co za tym idzie bardzo dobrego sprzętu. Jak wspomniałem wcześniej Docker nie używa wirtualizacji takiej jak Puppet czy Vagrant i dzięki temu pobiera o wiele mniej zasobów do uruchomienia wszystkich środowisk.Można również wspomnieć jak bardzo problematyczna byłaby praca z tymi wszystkimi projektami przy użyciu jedynie lokalnej maszyny bez wirtualizacji czy Docker-a.

Docker pozwala wykorzystywać gotowe obrazy zainstalowanych systemów, aplikacji i baz danych, które zostały wcześniej przygotowane i umieszczone w publicznym rejestrze.

Jeśli nie znajdziemy tego, czego szukamy, to zawsze możemy zbudować własny obraz bazując na jednym z bardziej generycznych zawierających tylko zainstalowany system operacyjny lub zainstalowane środowisko do uruchomienia.

Co daje praca na Dockerze? Podsumujmy:

  • możliwość pracy nad wieloma projektami jednocześnie na jednej maszynie,
  • eliminacja problemu “works on my machine” – wszystkie środowiska są takie same,
  • możliwość uruchomienia izolowanych kontenerów „side-by-side” dla zwiększenia wydajności,
  • dostarczenie nowych funkcjonalności w szybszy i bezpieczniejszy sposób dla Linux-a i Windows Server.

 Magento 2 i Docker

Magento wydało wersję instalacyjną swojej platformy Magento 2 opartą o Docker. Dostępna jest dokumentacja, można też pobrać samą aplikację.

W trakcie pobierania projektu zostaniemy zapytani o parę faktów:

  1. Źródło projektu:
  • Nowa instalacja
  • Pobranie tylko DevBox-a i użycie lokalnej instalacji
  • Magento i docker - instalacja
  1. Konfiguracja DevBox-a
  • Wybór systemu operacyjnego (Windows 10 Pro, macOS Yosemite 10.10.3 or above)
  • Wybór platformy Magento 2 (CE, EE)
  • Czy dołączyć przykładowe dane
  • Klucze dostępu (można je wygenerować po zalogowaniu na stronie magento)
  • i inne zaawansowane funkcje do wyboru (czy zainstalować RabbitMQ, użyj Elasticsearch, Varnish for HTTP acceleration)

Magento i docker - instalacja

Po tym procesie zostanie nam wygenerowana paczka do ściągnięcia i zainstalowania. Proces odpala się jedną komendą (macOS). Po wszystkim mamy zainstalowaną nową instancję Magento 2 🙂

Jeżeli posiadamy własne repozytoria bądź paczki na np. packagist.org możemy je dołączyć do pliku „composer.json” odpalić polecenie „composer update” na naszym Docker-owym kontenerze i w ten sposób mamy gotowe środowisko pracy w trzydzieści minut.

Niezależnie od tego czy pracujesz z jednym czy z wieloma projektami, przemyśl wykorzystanie Docker-a. Będziesz mógł go potem użyć do stworzenia innych środowisk lub dla kolejnego programisty, czy środowiska QA bądź „Staging”, a nawet do stworzenia samego środowiska produkcyjnego.

 

Napisz do nas

Potrzebujesz więcej informacji lub jesteś zainteresowany współpracą z nami? Chętnie odpowiemy na każde pytanie. Zapraszamy do kontaktu!
Pola oznaczone * są wymagane.

Więcej na naszym blogu...

Zobacz wszystkie posty