Docker
Wstępna weryfikacja
Weryfikacja instalacji
docker version
Sprawdzenie dostępnych obrazów (które mogą być uruchomione)
docker images
Pobieranie obrazów
docker pull alpine
Docker Hub Container Image Library
Usuwanie obrazów
docker image rm my-nginx:latest
Praca z kontenerami
Status kontenerów
docker ps -a
Status: Exited (0) - zakończył się prawidłowo
Status: np. Exited (255) - zakończył się nie prawidłowo
Przygotowanie i uruchamianie kontenera - zwykłe
docker run hello-world:latest
Przygotowanie i uruchamianie kontenera - tryb detach
docker run -d hello-world:latest
Nie jest blokowana konsola.
Przygotowanie i uruchamianie kontenera - tryb interaktywny
docker run -it --name test_console my-nginx:latest
W konsoli dostęp do terminala
Zatrzymywanie kontenera
docker stop <container_id_or_name>
Zatrzymanie wszystkich kontenerów
docker stop $(docker ps -q)
Wymuszenie zatrzymania (jak kill)
docker kill my_container
Usuwanie kontenerów
docker rm <container_id_or_name>
Usuń wszystkie zatrzymane kontenery
docker container prune
Usuń wszystkie kontenery (działające + zatrzymane)
docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
Uruchamianie zatrzymanego kontenera
docker start <container_id_or_name>
Logi kontenera
docker logs <container_id_or_name>
Inspekcja kontenera
docker container inspect <container_id_or_name>
W wyniku są też wszystkie informacje o sieci.
Dostęp do systemu działającego kontenera
docker exec -it <nazwa_lub_ID_kontenera> bash
docker exec -it <nazwa_lub_ID_kontenera> sh
Kopiowanie plików między hostem a kontenerem
Z hosta do kontenera:
docker cp plik.txt nazwakontenera:/sciezka/w/kontenerze/
Z kontenera na hosta:
docker cp nazwakontenera:/sciezka/w/kontenerze/plik.txt ./
Sieci
Sprawdzanie parametrów sieciowych systemu operacyjnego
ip addr show
Odnośnie dokera interesuje nas:
: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:4e:fb:e4:d3 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:4eff:fefb:e4d3/64 scope link
valid_lft forever preferred_lft forever
Rodzaje sieci
Host
Kontener korzysta z adresu IP hosta. Brak izolacji sieciowej. Szybsze, ale mniej bezpieczne.
None
Kontener nie ma dostępu do sieci. Brak połączeń przychodzących i wychodzących. Używane do maksymalnej izolacji.
Overlay
Sieć rozproszona – działa na wielu hostach Docker (np. w Docker Swarm). Idealna do komunikacji między węzłami.
Macvlan
Kontener dostaje własny adres MAC i IP w sieci fizycznej (jakby był osobnym urządzeniem w sieci LAN). Działa jak „pełnoprawny komputer”.
Ipvlan
Podobne do macvlan, ale bardziej wydajne. Używane przy bardzo precyzyjnej kontroli warstwy IP.
Sprawdź dostępne sieci
docker network ls
Szczegóły konkretnej sieci
docker network inspect bridge
Wolumeny i zarządzanie danymi
Kopiowanie danych do/z kontenera
docker cp ./demo.txt ubuntu:/data