Jeśli programujesz od jakiegoś czasu, pewnie spotkałeś się z problemem „u mnie działa”. Aplikacja perfekcyjnie funkcjonuje na Twoim komputerze, ale na serwerze produkcyjnym lub u kolegi z zespołu nie chce się uruchomić. Docker rozwiązuje ten problem raz na zawsze.
Dlaczego Docker jest ważny
Rok 2016 to przełomowy moment dla Docker. Ta technologia, która pojawiła się zaledwie 3 lata temu, zaczyna rewolucjonizować sposób w jaki wdrażamy aplikacje. Wielkie firmy jak Google, Netflix czy Amazon już używają kontenerów w swoich systemach produkcyjnych.
Co się nauczysz:
- Czym jest Docker i konteneryzacja
- Jaka jest różnica między kontenerem a maszyną wirtualną
- Jak zainstalować Docker na swoim komputerze
- Jak uruchomić pierwszy kontener
- Podstawowe komendy Docker które musisz znać
Wymagania wstępne:
- Podstawowa znajomość wiersza poleceń (terminal/cmd)
- Rozumienie czym jest aplikacja i biblioteki
- Komputer z systemem Linux, Mac lub Windows 10 Pro
- Połączenie z internetem do pobierania obrazów
Czym dokładnie jest Docker
Docker to platforma do tworzenia, uruchamiania i zarządzania kontenerami. Kontener to pakiet zawierający aplikację wraz z wszystkimi jej zależnościami – bibliotekami, konfiguracją, a nawet częściami systemu operacyjnego.
Kontener vs Maszyna Wirtualna
Wiele osób myli kontenery z maszynami wirtualnymi. To jednak różne technologie:
Kontenery Docker | Maszyny Wirtualne |
---|---|
Dzielą jądro OS z hostem | Każda ma własny OS |
Szybki start (sekundy) | Wolny start (minuty) |
Mała wielkość (MB) | Duża wielkość (GB) |
Mniejsze zużycie RAM | Większe zużycie RAM |
Portabilność między systemami | Ograniczona portabilność |
Instalacja Docker
Docker jest dostępny na wszystkich głównych systemach operacyjnych:
Linux (Ubuntu/Debian)
# Aktualizacja systemu sudo apt-get update # Instalacja Docker sudo apt-get install docker.io # Dodanie użytkownika do grupy docker sudo usermod -aG docker $USER # Sprawdzenie czy działa docker --version
Windows
Na Windows 10 Pro możesz zainstalować Docker for Windows z oficjalnej strony. Wymaga to włączenia Hyper-V w systemie.
Mac
Pobierz Docker for Mac z oficjalnej strony Docker. Instalacja przebiega jak standardowa aplikacja Mac.
Pierwszy kontener – Hello World
Sprawdźmy czy Docker działa uruchamiając pierwszy kontener:
# Uruchomienie testowego kontenera docker run hello-world
Jeśli wszystko działa poprawnie, zobaczysz wiadomość powitalną. Docker automatycznie:
- Sprawdzi czy obraz hello-world istnieje lokalnie
- Pobierze go z Docker Hub (publiczne repozytorium obrazów)
- Uruchomi kontener na podstawie tego obrazu
- Wyświetli wiadomość i zakończy działanie
Podstawowe komendy Docker
Oto najważniejsze komendy które musisz znać:
Zarządzanie obrazami
# Pobranie obrazu z Docker Hub docker pull ubuntu # Lista lokalnych obrazów docker images # Usunięcie obrazu docker rmi ubuntu
Zarządzanie kontenerami
# Uruchomienie kontenera docker run ubuntu echo "Hello Docker" # Uruchomienie kontenera w tle docker run -d nginx # Lista działających kontenerów docker ps # Lista wszystkich kontenerów (także zatrzymanych) docker ps -a # Zatrzymanie kontenera docker stop container_id # Usunięcie kontenera docker rm container_id
docker stop 3a7
zamiast docker stop 3a7b2c1d...
Praktyczny przykład – serwer web
Uruchommy prawdziwy serwer web w kontenerze:
# Uruchomienie serwera Nginx docker run -d -p 8080:80 --name moj-serwer nginx # Sprawdzenie czy działa docker ps
Teraz otwórz przeglądarkę i wejdź na http://localhost:8080. Zobaczysz stronę powitalną Nginx!
Wejście do wnętrza kontenera
# Wejście do działającego kontenera docker exec -it moj-serwer bash # Teraz jesteś wewnątrz kontenera! # Możesz wykonywać komendy Linux ls -la cat /etc/nginx/nginx.conf # Wyjście z kontenera exit
Podstawowe pojęcia które musisz znać
Common mistakes – błędy początkujących
sudo usermod -aG docker $USER
-p
nie dostaniesz się do aplikacji w kontenerze z zewnątrz.docker stop
i docker rm
żeby posprzątać.Tak, Docker Community Edition jest bezpłatny. Docker Inc. zarabia na wsparciu Enterprise i usługach w chmurze.
Kontenery są izolowane od systemu gospodarza, ale dzielą jądro. Są bezpieczniejsze niż zwykłe aplikacje, ale mniej niż maszyny wirtualne.
Kontener działa dopóki działa główny proces. Gdy proces kończy pracę, kontener się zatrzymuje. To normalne zachowanie.
Użyj docker commit
ale lepiej stwórz Dockerfile. Kontenery powinny być „disposable” – łatwe do odtworzenia.
Volumes to sposób na trwałe przechowywanie danych. Bez volumes wszystko znika gdy usuniesz kontener.
Teoretycznie tysiące, praktycznie tyle ile pozwala RAM i CPU. Kontenery są bardzo lekkie.
Przydatne zasoby:
- Docker Official Documentation
- Docker Hub – repozytorium obrazów
- Docker Community
- Docker Training Materials
🚀 Zadanie dla Ciebie
Uruchom następujące kontenery i sprawdź czy działają:
- Serwer Apache:
docker run -d -p 8081:80 httpd
- Baza danych MySQL:
docker run -d -e MYSQL_ROOT_PASSWORD=test123 mysql:5.7
- Redis cache:
docker run -d -p 6379:6379 redis
Sprawdź statusy kontenerów, wejdź do środka każdego z nich i zobacz co się dzieje. Na koniec zatrzymaj i usuń wszystkie kontenery.
Masz pytania o Docker? Podziel się swoimi doświadczeniami w komentarzach – Docker na początku może wydawać się skomplikowany, ale szybko stanie się Twoim ulubionym narzędziem!