Paweł "Otlet" Otlewski

Docker i 10 przydatnych komend

Administracja systemami Linux Blog Docker Poradniki 377
docker

Jest to ostatnio bardzo popularne narzędzie. Sam z niego korzystam, gdy tylko mogę i nie wyobrażam sobie aktualnie pracy bez niego. Dlatego prezentuję 10 przydatnych i chyba najpopularniejszych komend!

Ten artykuł to bardziej moje kompedium, gdyż mimo że są to popularne komendy to moja pamięć bardzo lubi płatać mi figle tym samym zapominam ich. Może i Wam się przyda?

Pominę instalację, gdyż tutaj świetnie sobie z tym radzi oficjalna dokumentacja.

Docker – przydatne komendy

docker
  • docker ps
  • docker pull
  • docker build
  • docker run
  • docker logs
  • docker volume ls
  • docker rm
  • docker rmi
  • docker stop

docker ps

Jest to podstawowa moim zdaniem komenda. Czemu?

Docker pozwala utworzyć kontenery z aplikacjami, więc warto by było wiedzieć co dokładnie mamy uruchomione, jaki jest UID kontenera, jego przyjazna nazwa, czy chociażby jakie porty są wystawione z kontenera.

Oczywiście jak większość komenda, tak i ta posiada dodatkowe flagi. Np.:

  • -a/–all – wyświetla wszystkie kontenery (standardowo wyświetla tylko włączone)
  • -q/–quiet – ta flaga wyświetla nam tylko identyfikatory, które pozwalają np.: wykorzystać identyfikatory dalej, zamiast je wyciągać „ręcznie”, np. z wykorzystaniem AWK.

docker pull

Przydałoby się posiadać jakieś kontenery, by to miało jakikolwiek sens. Właśnie za pomocą pull możemy je pobrać z rejestru (registry), gdzie są trzymane obrazy kontenerów. Możemy posiadać własny rejestr, albo skorzystać z gotowych, takich jak Hub.

Są gotowe obrazy, np.: z CentOS, albo już z pre-instalowanym Nodejs z NPM. Jest wiele obrazów, nawet gotowych do uruchomienia aplikacji i w ten sposób możemy taki obraz pobrać z repozytorium obrazów.

docker build

Jednak skoro już korzystamy z kontenerów, to chcemy na nim uruchomić własne obrazy z aplikacjami. W tym celu tworzymy plik Dockerfile (o nim w innym artykule) i możemy za pomocą komendy build utworzyć własny obraz i go uruchomić.

docker run

Napisałem już o liście uruchomionych kontenerów, jak pobrać gotowe i jak utworzyć własne. Jednak warto je uruchomić.

Przykładowo wpisując run -it ubuntu bash uruchomimy na obrazie Ubuntu sesję basha. Dla bezpieczeństwa jest to mega przydatna opcja, bo możemy tworzyć izolowane środowisko w prosty sposób i z jego poziomu testować np.: pliki malware.

docker logs

Jednak nie wszystko musi iść po myśli, więc zawsze warto spojrzeć w logi aplikacji i sprawdzić co się dzieje. Do tego może się przydać właśnie komenda do sprawdzenia logów serwera. Wywołujemy to np.: logs –follow nazwa_super_kontenera

docker volume ls

Jak już wspomniałem, świetnie można wykorzystać dla naszej aplikacji, jednakże czasami potrzebujemy jakieś dane utrzymywać (sesja kontenera nie utrzymuje na stałe danych). Właśnie korzystając z volume możemy dane trzymać na stałe, co w pewnych przypadkach jest konieczne. volume ls – wyświetla nam listę taki wolumenów.

Nie jestem fanem „trwałego” utrzymywania danych przez kontenery, więc pozwolicie, że nie będę się rozwodzić nad większą ilością funkcji wolumenów.

docker stop, docker rm i docker rmi

Utworzyliśmy kontener pobrany z internetu lub utworzony samodzielnie. Uruchomiliśmy go. Co w momencie, gdy go nie potrzebujemy już? stop jak się domyślacie zatrzymuje kontener. Nie zmienia faktu, że dalej w systemie posiadamy pobrany obraz lub istniejący kontener. W tym przypadku rm służy usuwaniu kontenerów, zaś rmi – usuwaniu pobranych obrazów.

Jak zastosować komendy razem?

Mój ulubiony temat to wtedy, gdy czyszczę serwer lub komputer lokalny z istniejących obrazów i/lub kontenerów. Czas posprzątać i wtedy robię taki mały zestaw:

  • docker kill $(docker ps -q) – zabijam (nie wyłączam) wszystkie istniejące kontenery.
  • docker rm $(docker ps -a -q) – temat usuwam wszystkie istniejące kontenery
  • docker rmi $(docker images -q) – i na sam koniec usuwam wszystkie pobrane obrazy ze swojego urządzenia.

Co jednak z bardziej skomplikowanymi operacjami?

Pomijając temat Swarm, Kubertenes i innych magicznych narzędzi, by ułatwić sobie pracę korzystam z docker-compose, jednak jest to dużo bardziej rozbudowane narzędzie, więc nie opiszę je już niedługo wraz z poradnikiem na temat uruchamiania prostej aplikacji sklepu opartej o microservices, gdzie kontenery sprawują się najlepiej.

Reszta artykułów o kontenerach tutaj!
Reszta poradników tutaj!

Do zobaczenia!

Paweł Otlewski

Programista, Webmaster, DevOps, Administrator - różnie się mnie nazywa. Ja po prostu jestem pasjonatem informatyki, uwielbiam gry komputerowe oraz tematykę bezpieczeństwa IT.

Wszelkie prawa zastrzeżone | Paweł Otlewski
%d bloggers like this: