Wprowadzenie do Dockera

Wprowadzenie do Dockera

Czym jest Docker?

Docker to platforma open-source, która umożliwia automatyzację wdrażania aplikacji wewnątrz kontenerów. Kontenery pozwalają programistom pakować aplikacje ze wszystkimi potrzebnymi częściami (biblioteki, frameworki, zależności) i wysyłać je jako jeden pakiet.

Kontenery vs Maszyny Wirtualne

Kontenery Maszyny wirtualne
Współdzielą jądro z hostem Pełna wirtualizacja sprzętu
Lekkie (MB) Ciężkie (GB)
Uruchamiają się w sekundy Uruchamiają się w minuty
Mniej izolowane Bardziej izolowane
Idealny dla mikrousług Idealny dla pełnych systemów
Docker vs VM

Architektura Dockera

Podstawowe pojęcia

Podstawowe komendy

Pobieranie i zarządzanie obrazami

# Pobranie obrazu z Docker Hub
docker pull nazwa_obrazu:tag

# Lista pobranych obrazów
docker images

# Usunięcie obrazu
docker rmi nazwa_obrazu

Uruchamianie i zarządzanie kontenerami

# Uruchomienie kontenera
docker run nazwa_obrazu

# Uruchomienie kontenera w tle (detached mode)
docker run -d nazwa_obrazu

# Uruchomienie kontenera z mapowaniem portów (host_port:container_port)
docker run -p 8080:80 nazwa_obrazu

# Uruchomienie kontenera z montowaniem wolumenu
docker run -v /ścieżka/na/hoście:/ścieżka/w/kontenerze nazwa_obrazu

# Uruchomienie kontenera z ustawieniem zmiennych środowiskowych
docker run -e ZMIENNA=wartość nazwa_obrazu

# Uruchomienie kontenera z nadaniem mu nazwy
docker run --name mój_kontener nazwa_obrazu

# Lista uruchomionych kontenerów
docker ps

# Lista wszystkich kontenerów (również zatrzymanych)
docker ps -a

# Zatrzymanie kontenera
docker stop id_lub_nazwa_kontenera

# Uruchomienie zatrzymanego kontenera
docker start id_lub_nazwa_kontenera

# Usunięcie kontenera
docker rm id_lub_nazwa_kontenera

# Wyświetlenie logów kontenera
docker logs id_lub_nazwa_kontenera

# Uruchomienie powłoki w działającym kontenerze
docker exec -it id_lub_nazwa_kontenera bash

Praktyczne ćwiczenia - pierwsze kroki z Dockerem

Ćwiczenie 1: Hello World

# Uruchom kontener hello-world
docker run hello-world

Wynik powinien pokazać komunikat potwierdzający poprawne działanie Dockera.

Ćwiczenie 2: Uruchomienie Node.js w kontenerze

# Pobierz obraz Node.js
docker pull node:18-alpine

# Uruchom kontener i wyświetl wersję Node.js
docker run --rm node:18-alpine node -v

Ćwiczenie 3: Uruchomienie serwera WWW

# Pobierz obraz Nginx
docker pull nginx

# Uruchom serwer WWW na porcie 8080
docker run -d -p 8080:80 --name moj-nginx nginx

Otwórz przeglądarkę i wejdź na adres http://localhost:8080

Ćwiczenie 4: Interakcja z kontenerem

# Uruchom powłokę w kontenerze
docker exec -it moj-nginx bash

# W kontenerze wykonaj:
ls -la /usr/share/nginx/html
cat /etc/nginx/conf.d/default.conf
exit

Ćwiczenie 5: Przeglądanie logów i zatrzymanie kontenera

# Wyświetl logi serwera
docker logs moj-nginx

# Zatrzymaj kontener
docker stop moj-nginx

# Sprawdź, czy kontener jest na liście zatrzymanych
docker ps -a

# Usuń kontener
docker rm moj-nginx

Rejestry Docker

Aby szukać obrazów, odwiedź Docker Hub.

Zasoby do nauki


Przydatne skróty i wskazówki