Dlaczego Docker

Używam dockera już od jakiegoś roku czyli niedawna. Wcześniej gdy mówili mi o nim koledzy miałem na to – delikatnie mówiąc – obojętność. A dziś nie wyobrażam sobie bez niego życia. Pozwól że opowiem Ci dlaczego i jak planuję go wykorzystać w projekcie.

Ciężkie życie devopsa

Utrudzeniem życia wszystkich devopsów jest konfiguracja systemu. Żeby wszystko zadziałało poprawnie po wejściu na produkcję, żeby aplikacja A gadała z B wspólnie użytkując bibliotekę C i mając odpowiednio spreparowaną bazę D. (Oczywiście istnieją do tego także inne rozwiązania niż docker (np puppet) ale nie o tym dziś mowa). Często jednak taka komunikacja wymaga wielu zabiegów. Dlaczego? Bo system systemowi nierówny. Różnią się dystrubucje Linuxa. Biblioteki po aktualizacjach zmieniają się nie do poznania. Ale czy rzeczywiście jest to problem tylko devopsa? Pozwól że wysunę tu twierdzenie że w pewnym sensie każdy jest devopsem czy tego chce czy nie.

Każdy jest devopsem

Każdy z nas gdy wypuszcza do ludzi jakiś system musi zadbać o odpowiednią komunikację elementów. I każdy z nas chyba już w życiu męczył się z ustawianiem tego co i jak.

Maven w makroskali

Docker wg definicji jest to narzędzie wykorzystujące lekką wirtualizację. Tworzysz zupełnie odrębny system w środku systemu ze swoimi aplikacjami i zależnościami. Pełna magia. Na początku warto spojrzeć na Dockera jak na Maven, a Dockerfile jak pom.xml. Po prostu tworzysz definicję aplikacji w makro-sensie, piszesz zależności ale nie bibliotek ale aplikacji i baz danych.

Skaut potrzebuje Dockera

System Komunikacji AUTomatycznej (SKAUT) będzie potrzebował Raspberry albo jakiegoś innego mikrokomputerka. Mógłbym to wszystko zainstalować ręcznie ale gdyby tak dało się zainstalować cały silnik jednym poleceniem.

Plan na wykorzystanie Dockera dla Skauta to stworzenie obrazu na Dockerfile wg tego szkicu.

Żeby skorzystać z Dockera potrzebujesz Windows 10 PRO albo jakiegoś normalnego Linuxa. Polecam tą drugą opcję. Na ubuntu robisz tak :

Potem żeby uruchomić sobie jakąkolwiek Docker-compliant aplikację wystarczy ją

Zalety

W Dockerze możesz bezkarnie instalować i usuwać pliki, instalować i wywalać aplikację, zmieniać wersje Java czy innych bibliotek. Robić cokolwiek bezkarnie. Gdy coś pójdzie nie tak

i po bólu.. Gdy chcesz podzielić się działającym systemem z kolegą który może go wykorzystać wystarczy że podzielisz się z nim działającym obrazem.

  • To uczucie, kiedy odpalasz usługę sieciową napisaną w C# .Net w Dockerze na kontenerze z Linuxem.