Czym jest Docker i jak go zainstalować?

Autor: Martin Szelcel 4 min. czytania Czym jest Docker i jak go zainstalować?

Docker 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:

Install Docker Engine on Debian
Instructions for installing Docker Engine on Debian

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.

Świetny system na serwer! Instalacja Debiana 10 w szczegółach.
Debian jest wolną dystrybucją systemu operacyjnego GNU/Linux. Jest to systemcechujący się bardzo wysoką stabilnością i niezawodnością. Ponadto Debian jestnie wymaga wielu zasobów i na start nie posiada wielu zbędnych pakietów. Dlategomyślę, że Debian jest idealnym systemem dla osób rozpoczynający…

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.