Spis treści:
Obrazy kontenera na platformie Docker
Kontenery Docker a tradycyjne maszyny wirtualne
Uruchamianie kontenerów – podstawowe komendy
Docker – najczęściej zadawane pytania
Czym jest Docker?
Docker to projekt open source, który umożliwia tworzenie i uruchomienie mikrousługi aplikacji w tzw. kontenerach. Zawiera on wszystkie jej zależności (biblioteki systemowe, pliki konfiguracyjne, narzędzia systemowe itp.), dzięki czemu można ją uruchomić w dowolnym środowisku będąc pewnym, że tak samo zadziała na twojej i mojej maszynie, na każdym serwerze oraz w każdym środowisku deweloperskim.
W praktyce kontener Docker to po prostu proces (lub grupa procesów) korzystający z jądra hosta (systemu operacyjnego), ale odizolowany od niego za pomocą określonych mechanizmów (namespaces, cgroups itp.), dzięki czemu aplikacja zawsze ma własne środowisko uruchomieniowe, a nawet własny adres IP w sieci Docker.
Obrazy kontenera na platformie Docker
W pełni skompletowane środowiska wykonawcze nazywa się obrazami Docker. Można je pobrać choćby z Docker Hub, gdzie jest ich ok. 8,3 mln., a liczba ta z roku na rok rośnie o 40%. Tak duża różnorodność, dostępność oraz możliwość uruchomienia dowolnej aplikacji na różnych maszynach (np. serwer testowy, komputer z systemem linux klienta końcowego) sprawia, że zarówno dla dużych firm, jak i indywidualnych deweloperów technologia kontenerowa stała się standardowym sposobem wdrażania i uruchamianie aplikacji w dzisiejszych czasach.
Ta ogromna popularność wynika też z tego, że kontenery Docker:
- działają w izolacji, a przez to nie powodują konfliktów z innymi aplikacjami,
- mogą się ze sobą komunikować, dzięki czemu zarządzanie aplikacjami składającymi się z wielu komponentów staje się łatwiejsze,
- współdzielą zasoby systemowe jednego hosta, dzięki czemu serwer, który udźwignąłby 2–3 maszyny wirtualne, może uruchomić kilkanaście lub więcej kontenerów Dockera przy podobnym obciążeniu sprzętu.
Przeczytaj także: Serverless – co to jest i jak działa?
Kontenery Docker a tradycyjne maszyny wirtualne
Choć kontenery i maszyny wirtualne izolują aplikacje, to w praktyce działają zupełnie inaczej. Te drugie potrzebują uruchomienia całego gościnnego systemu operacyjnego, co negatywnie wpływa na zużycie zasobów. Z jednej strony spowalnia to prace, a z drugiej zapewnia większe bezpieczenstwo.
Instalacja Dockera
Instalacja Dockera przebiega trochę inaczej w zależności od systemu operacyjnego hosta. Najprościej jest to zrobić poprzez uruchomienie narzędzia Docker Desktop. Nie tylko umożliwia ono uruchamianie i zarządzanie kontenerami, ale także oferuje przyjazny interfejs graficzny oraz wsparcie dla najnowszych wersji Docker Engine.
Uruchamianie kontenerów – podstawowe komendy
Podstawowym sposobem uruchomienia aplikacji w Dockerze jest wpisanie polecenia „docker run” w wierszu poleceń. Proces ten tworzy instancję kontenera na podstawie obrazu, przydziela jej unikalny ID oraz nazwę, konfiguruje sieć i system plików, a następnie uruchamia główny proces aplikacji. Wszystko to dzieje się w ciągu sekund. W logach lub w terminalu zobaczymy, że nasza aplikacja wystartowała. Często używa się przy nim dodatkowych opcji, np. -d (w tle) czy -p (mapowanie portu kontenera Dockera). Szczególnie przydatne polecenie to -v, które służy do udostępnienia kontenerowi przestrzeni na tworzenie kopii zapasowych poza kontenerem. Inne komendy to:
- docker images – wyświetla listę obrazów Docker pobranych na nasz system,
- docker ps – pokazuje aktualnie uruchomione kontenery,
- docker stop i docker start – zatrzymuje i wznawia dany kontener,
- docker rm – usuwa zatrzymany kontener,
- docker exec – ważne polecienie, gdy potrzebujemy przeglądać pliki kontenera lub uruchamiać narzędzia systemowe zainstalowane w środku, np. docker exec -it friendly_einstein /bin/bash da nam interaktywny terminal bash wewnątrz kontenera o nazwie friendly_einstein.
Przeczytaj także: Co to jest API i do czego służy?

