30
Cze

Docker na Macu

Witajcie po krótkiej przerwie. Wpadłem w mały kryzys nie wiedząc czym chciałbym, a przede wszystkim czym warto się z Wami podzielić. Okazało się, że udało mi się zapisać na warsztaty w ramach .NET Core Tour, które prowadzą Piotr Gankiewicz i Łukasz Pyrzyk. Dopiero zaczynam przygodę z Dockerem ale chciałem podzielić się z Wami z jakimi problemami możecie natknąć się na początku przygody z dockerem na macu. Jeśli chodzi o to czym jest Docker odsyłam do linku.

Intalacja Docker’a na Macu

Wydaje się, że nic prostrzego pobieramy sobie obraz Docker.dmg ze strony przenosimy do aplikacji uruchamiamy i gotowe. Nic bardziej mylnego. O tyle o ile mamy Mac’a, który w pełni spełnia wymagania Docker’a to wszystko jest w porządku. Z informacji jakie znalazłem są to Macbooki powyżej 2010 roku. Chcąc uruchomić Docker’a naszym oczom ukarze się poniższy obrazek.

docker na macu blad

Trochę słabo. Co w takim przypadku? W zasadzie mamy 3 opcje:

  1. Załamujemy się i godzimy z tym, że nic nic z tego
  2. Przesiadamy się na PC (o ile takowy posiadamy)
  3. Szukamy informacji w sieci jak rozwiązać zaistniały problem.

Ja wybrałem tą trzecią opcje. Oczywiście mogłem wziąć laptopa od żony 🙂 ale jednak wolę bardziej kompaktowe laptopy (13″ vs 15″). Poszukałem trochę informacji i okazało się, że istnieje coś takiego jak docker toolbox.

Docker Toolbox

Z informacji jakie znalazłem okazało się, że Docker Toolbox jest dla mnie idealnym rozwiązaniem, gdyż przeznaczony na starsze maszyny (mój mid 2009). Ale co to właściwie jest? Jest to narzędzie 4w1 i zawiera w sobie:

  • DOCKER ENGINE
  • COMPOSE
  • MACHINE
  • KITEMATIC

Po instalacji musimy się zalogować na  nasze konto docker hub (kurde czyżby to nie było lokalne? – takie pytanie pojawiło się w mojej głowie, na szczęście okazało się, że nie). Na początku błądziłem jak dziecko we mgle. Co tu zrobić od czego zacząć? Przede wszystkim od pomocy wujka google 🙂 trochę tutoriali i coś zaczyna się dziać. Jak wygląda Kitematic? I czym jest? Kitematic jest to narzędzie do zarządzania naszymi kontenerami z interfejsu graficznego. No niby fajnie ale jednak wolę terminal. Tak samo jak nie lubię GUI dla gita tak i tu wolałem poszukać więcej informacji.

docker toolbox

Dokumentacja Twoim przyjacielem

Nie przepadam za czytaniem ale jak się czegoś nie zna to tak jak w tytule dokumentacja może okazać się Twoim przyjacielem. No i faktycznie zacząłem od sprawdzenia jak w ogóle tworzy się maszynę z wiersza poleceń. Najpierw wylistowałem sobie poleceniem:

Okazało się, że znajduje się tu moja maszyna utworzona w kitematic’u. No i super coś się dzieje, coś działa. Teraz możemy albo stworzyć nową maszynę poleceniem:

albo uruchomić domyślną (default) poleceniem:

Następnie musimy „spiąć” nasz terminal z naszą nową maszyną poleceniem:

Adres IP naszej maszyny sprawdzamy poleceniem:

Oczywiście wszędzie zamiast default wpisujemy naszą nazwę maszyny jeśli takową tworzyliśmy.

Ale ja w dalszym ciągu nie wiem czy wszystko działa tak jak należy. Należałoby stworzyć zatem jakiś kontener. Rozmawiałem chwilę z Piotrem Gankiewiczem i powiedział mi, że najważniejsze abym spróbował zbudować własny dockerfile. No fajnie, ale co to właściwie jest :p wujek google rusza z pomocą.

Dockerfile

Zacząłem ponownie od poszukania informacji. Stworzyłem na pulpicie folder docker, a w nim folder src, w którym trzymam wszystkie pliki projektu. Przykład, na którym się opierałem to proste, standardowe Hello World w uwielbianym przez programistów PHP. Stworzyłem plik index.php z takim oto kodem:

Następnie w folderze głównym czyli mój docker stworzyłem tytułowy plik dockerfile a w nim zamieściłem następujący kod:

Spytacie skąd wiedziałem co w nim powinno się znaleźć. Należy udać się na stronę Docker Hub i wyszukać co nas interesuje. W dokumentacji wszystko jest ładnie opisane, więc nikt nie powinien mieć problemu z odnalezieniem się. Przy tworzeniu folderów oraz wpisywaniu lokalizacji, z której pliki mają być kopiowane należy zwrócić uwagę na poprawną pisownię (w innym wypadku możemy stracić niepotrzebnie sporo czasu), aby uniknąć takiego błędu:

docker build error

Build & test

Trochę się pospieszyłem z powyższym zrzutem no ale niech już zostanie. Kolejnym krokiem jaki musimy wykonać jest zbudowanie naszego kontenera poleceniem:

Czekamy chwilę aż otrzymamy informację o poprawnym zbudowaniu. Kropka na końcu oznacza bieżącą lokalizację. Gdyby nasz plik dockerfile znajdował się w innym miejscu należałoby podać tutaj jego ścieżkę. Kolejnym krokiem jest uruchomienie:

Parametr -p oznacza jak można się domyślić port, pierwszy jest to port hosta a drugi kontenera. Na końcu nazwa naszego kontenera.

Teraz możemy sprawdzić czy nasz kontener działa przez wpisanie w oknie przeglądarki adresu naszej maszyny oraz jego portu. Gdy naszym oczom ukarze się następujący wynik:

docker test

to znaczy, że wszystko działa poprawnie.

Podsumowanie

Na chwilę obecną to wszystko, z pewnością cykl o dokerze będzie kontynuowany, gdyż bardzo mnie to zaciekawiło. Dodatkowo mam nadzieję, że po warsztatach moja wiedza znacznie się poszerzy i będę mógł więcej wiedzy Wam przekazać. Jeśli gdzieś popełniłem błąd śmiało komentujcie. Dopiero uczę się korzystać z Docker’a i chcę Wam przekazywać wiedzę, którą nabyłem, podzielić się spostrzeżeniami oraz rozwiązaniami jakie przychodzą mi do głowy.

Tagi: , ,

There are no comments yet

Why not be the first

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *