Obrazy Dockera – budowa i zarządzanie
1. Wprowadzenie
W poprzedniej lekcji nauczyłeś się, jak zainstalować Dockera i uruchomić pierwszy kontener. W tej lekcji zagłębimy się w pojęcie obrazów Dockera (images) — czyli podstawowych „klocków”, z których budowane są kontenery. Zrozumienie, czym są obrazy, jak powstają i jak się nimi zarządza, to kluczowy krok do efektywnego korzystania z Dockera w codziennej pracy deweloperskiej.
2. Czym są obrazy Dockera (Docker Images)
Obraz (image) to niezmienny szablon, który zawiera wszystko, co potrzebne do uruchomienia kontenera — system plików, aplikację, biblioteki, zmienne środowiskowe i inne zależności. Można go porównać do „zamrożonej” wersji środowiska aplikacji, z której tworzone są kontenery (czyli działające instancje obrazu).
Każdy obraz jest zbudowany warstwowo (layered architecture) — każda warstwa reprezentuje pewną zmianę w obrazie (np. instalacja pakietu, skopiowanie pliku, ustawienie zmiennej środowiskowej). Docker dzięki temu wykorzystuje mechanizm cache, co przyspiesza budowanie i pobieranie obrazów — jeśli jakaś warstwa już istnieje, nie musi być pobierana ani budowana ponownie.
Przykład: Obraz aplikacji opartej na Node.js może zawierać:
- Bazowy obraz systemu (np.
ubuntu:22.04), - Zainstalowany Node.js,
- Skopiowany kod aplikacji,
- Instrukcję uruchomienia (np.
CMD ["node", "app.js"]).
3. Jak powstają obrazy Dockera
Obrazy można uzyskać na trzy sposoby:
-
Pobierając gotowe obrazy z rejestru (np. Docker Hub) Najszybsza metoda — korzystasz z publicznie dostępnych obrazów przygotowanych przez społeczność lub firmy (np.
nginx,mysql,python). -
Budując własny obraz przy pomocy pliku
DockerfileTworzysz własną konfigurację, opisując krok po kroku, jak ma wyglądać środowisko aplikacji. Przykład prostego plikuDockerfile:
Następnie budujesz obraz:
- Tworząc nowy obraz z istniejącego kontenera Możesz uruchomić kontener, wprowadzić w nim zmiany, a następnie zapisać go jako nowy obraz:
4. Praca z Docker Hubem i prywatnymi rejestrami
4.1 Docker Hub
Docker Hub to oficjalny, publiczny rejestr obrazów Dockera.
To tam Docker domyślnie szuka obrazów przy poleceniu docker pull.
Na Docker Hub znajdziesz:
- oficjalne obrazy (np.
nginx,mysql,ubuntu,node), - obrazy tworzone przez społeczność,
- własne repozytoria po zalogowaniu.
Aby zalogować się do Docker Hub z terminala:
Następnie podajesz swoją nazwę użytkownika i hasło.
Aby przesłać własny obraz do repozytorium:
4.2 Prywatne rejestry
W środowisku firmowym często korzysta się z prywatnych rejestrów obrazów, aby zachować kontrolę i bezpieczeństwo nad środowiskami. Najpopularniejsze rozwiązania to:
- GitHub Container Registry (GHCR)
- GitLab Container Registry
- Amazon Elastic Container Registry (ECR)
- Google Container Registry (GCR)
- Azure Container Registry (ACR)
Działają one podobnie jak Docker Hub — umożliwiają przechowywanie, wersjonowanie i pobieranie obrazów, ale wymagają autoryzacji użytkownika.
5. Podstawowe polecenia do pracy z obrazami
5.1 docker pull — pobieranie obrazu
To polecenie służy do pobierania obrazu z rejestru (domyślnie z Docker Hub).
Składnia:
Przykłady:
Jeśli nie podasz tag, Docker domyślnie pobierze wersję latest.
5.2 docker images — lista lokalnych obrazów
To polecenie pokazuje wszystkie obrazy znajdujące się w twoim systemie.
Wynik zawiera:
- REPOSITORY – nazwa repozytorium (np.
nginx), - TAG – wersja obrazu (np.
latest), - IMAGE ID – unikalny identyfikator obrazu,
- CREATED – data utworzenia,
- SIZE – rozmiar obrazu.
Przykład wyniku:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest a99a39d070bf 2 weeks ago 187MB
ubuntu 22.04 ba6acccedd29 1 month ago 77MB
5.3 docker rmi — usuwanie obrazów
Jeśli chcesz zwolnić miejsce lub pozbyć się nieużywanych obrazów, możesz je usunąć za pomocą:
Przykłady:
Aby wymusić usunięcie obrazu, nawet jeśli jest powiązany z kontenerem:
Można też usunąć wszystkie nieużywane obrazy jednocześnie:
6. Praktyczny przepływ pracy z obrazami
- Pobierasz obraz z rejestru:
- Tworzysz kontener z obrazu:
- Dokonujesz zmian wewnątrz kontenera (np. instalacja pakietów).
- Tworzysz nowy obraz na podstawie kontenera:
- Sprawdzasz dostępne obrazy:
- Wysyłasz własny obraz do Docker Hub:
7. Podsumowanie
W tej lekcji poznałeś:
- czym są obrazy Dockera i jak są zbudowane,
- jak powstają — poprzez pobranie, budowę lub zapisanie kontenera,
- jak korzystać z publicznych (Docker Hub) i prywatnych rejestrów,
-
podstawowe polecenia:
docker pull– pobieranie obrazów,docker images– wyświetlanie listy obrazów,docker rmi– usuwanie nieużywanych obrazów.
Zrozumienie obrazów to fundament efektywnej pracy z Dockerem — w kolejnych lekcjach nauczysz się budować własne obrazy z użyciem Dockerfile, zarządzać ich wersjami oraz optymalizować ich rozmiar i wydajność.