Czym jest Docker i jak go zainstalować?
Autor: Martin Szelcel • 4 min. czytania • AktualizacjaDocker to otwarte narzędzie które służy do tzw. konteneryzacji. Pozwala on nam na umieszczenie całego programu wraz z wszystkimi wymaganymi zależnościami i środowiskiem w lekkim i przenośnym kontenerze, który następnie może zostać uruchomiony na każdym systemie obsługującym Dockera. Pozwala to na wyeliminowanie problemów z kompatybilnością, różnymi wersjami zależności. Po za tym znacznie przyśpiesza przenoszenie aplikacji na inny komputer i dzielenie się nimi z innymi.
Czym różni się Docker od maszyny wirtualnej?
Wirtualizacja polega na uruchomieniu systemu na wirtualnym komputerze, tak aby ten myślał, że działa na fizycznym urządzeniu. Z tego powodu wirtualizowany jest każdy z komponentów takiego komputera - wirtualny procesor, pamięć RAM, czy dysk twardy. Wymaga to dużej ilości zasobów i nie jest zbyt efektywne. Wyobraź sobie, że każda aplikacja uruchomiała by się w takiej osobnej wirtualnej maszynie. Sprawiło by to, że nasz komputer miał bardzo dużo pracy, aby uruchamiać tyle wirtualnych komputerów, a jego zasoby bardzo szybko by się skończyły.
Docker działa inaczej, każdy kontener korzysta z wspólnego systemu operacyjnego, nie ma tutaj zbędnej wirtualizacji każdego z podzespołów. Każdy z kontenerów otrzymuje jednak osobny zestaw oprogramowania w odpowiednio dobranych do niego wersjach. Programy są więc odizolowane od siebie i nie wiedzą o swoim istnieniu. Istnieje jednak możliwość tworzenia sieci pomiędzy kontenerami.
Instalacja Dockera
W tym krótkim poradniku pokaże jak zainstalować Dockera na systemie Debian. Bazuje tutaj na poradniku z oficjalnej dokumentacji Dockera:
W dokumentacji powyżej znajdziesz również instrukcje krok po kroku, jak zainstalować Dockera na innych systemach operacyjnych.
Jeżeli nie wiesz jak zainstalować Debiana na swoim komputerze przeznaczonym na serwer możesz skorzystać z mojego wpisu poruszającego ten temat.
Przygotowanie APTa do korzystania z repozytorium Dockera
Przed rozpoczęciem instalacji upewnijmy się, że mamy wszystkie pakiety wymagane do korzystania z repozytoriów przez HTTPS. Wpisujemy następujące polecenia:
sudo apt update
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Następnie musimy dodać klucz GPG repozytorum Dockera, tak aby umożliwić naszemu serwerowi bezpieczne pobranie wymaganych pakietów.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Teraz pozostało nam wybrać jakie repozytorium chcemy dodać do APTa. Poniższe polecenie dodaje repozytorium "stable" czyli te zawierające najbardziej stabilne wersje Dockera.
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Instalacja Docker Engine
Teraz pozostało nam tylko zaktualizować listę pakietów i zainstalować pakiety wymagane do działania Dockera.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Sprawdzamy czy Docker działa
Aby sprawdzić czy wszytko działa poprawnie, możemy spróbować uruchomić kontener z obrazem hello-world.
sudo docker run hello-world
Wyświetli on następującą wiadomość:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Oznacza ona, że wszystko działa poprawnie i możemy śmiało używać Dockera do tworzenia i uruchamiania aplikacji opartych na kontenerach.
Mam nadzieję, że ten post pomógł ci lepiej zrozumieć jak działa Docker. Jeżeli tak było lub masz jakieś pytania, czy wątpliwości to nie zapomnij zostawić komentarza poniżej.