Docker to popularne oprogramowanie do konteneryzacji. Kontenery są standardową jednostką oprogramowania, która pakuje kod i wszystkie jego zależności, dzięki czemu aplikacja może być uruchamiana szybko i niezawodnie w różnych systemach operacyjnych i środowiskach komputerowych.
Z technicznego punktu widzenia kontener to uruchomiony proces, który jest odizolowany od innych procesów i ma dostęp do zasobów komputera. Następnie przyjrzyjmy się instalacji Dockera w Debianie 11 i uruchomieniu pierwszej aplikacji.
Istnieją dwa sposoby instalacji: przy użyciu standardowych repozytoriów Debiana lub oficjalnego repozytorium Dockera. Repozytoria Debiana nie zawierają najnowszej wersji, więc rozważmy instalację z oficjalnego repozytorium Dockera.
Przed dodaniem repozytorium należy zaktualizować listę pakietów, uruchamiając polecenie:
$ sudo apt update

Zainstaluj również dodatkowe pakiety, które są potrzebne do pracy ze zdalnymi repozytoriami. Aby zainstalować te pakiety, uruchom polecenie:
$ sudo apt -y install ca-certificates curl gnupg lsb-release

Następnie pobierz i dodaj klucz PGP z repozytorium. Aby to zrobić, uruchom polecenie:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Aby dodać repozytorium należy uruchomić polecenie:
$ echo "deb [arch=$(dpkg --print-architecture) 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

Aby zainstalować pakiet, należy najpierw zaktualizować listy pakietów, aby nowe repozytorium pojawiło się w systemie. Aby to zrobić, wystarczy uruchomić polecenie:
$ sudo apt update
Na koniec można zainstalować dodatkowe pakiety. Instalacja odbywa się za pomocą polecenia:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io

Słowo ce w nazwie pakietu docker-ce oznacza community, co oznacza, że zainstalowana zostanie wersja darmowa (aka community version). Teraz już wiesz, jak zainstalować docker debian.
Po instalacji program zostanie domyślnie wyłączony. Aby uruchomić program, należy uruchomić polecenie:
$ sudo systemctl start docker

Aby uruchomił się wraz z systemem operacyjnym należy dodać go do autoloadera za pomocą komendy:
$ sudo systemctl enable docker

Domyślnie tylko użytkownik root może używać i wykonywać polecenia w terminalu. Jeśli wykonasz dowolne polecenie od zwykłego użytkownika, terminal wyświetli następujący błąd:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Aby uruchomić polecenie jako zwykły użytkownik i bez użycia polecenia sudo, należy dodać użytkownika do grupy docker. Grupa docker jest tworzona automatycznie podczas instalacji. Jeśli jednak z jakiegoś powodu nie zostanie utworzona automatycznie, należy utworzyć ją ręcznie, wykonując poniższe polecenie:
$ sudo groupadd docker
Następnie, aby dodać bieżącego użytkownika do grupy docker, uruchom:
$ sudo usermod -aG docker $USER

Zmienna $USER oznacza, że bieżący użytkownik, w imieniu którego uruchamiana jest sesja, zostanie dodany do grupy docker. Zmienna ta jest obecna we wszystkich nowoczesnych dystrybucjach Linuksa. Warto również zauważyć, że grupa docker nadaje uprawnienia równoważne z uprawnieniami użytkownika root.
Po dodaniu użytkownika konieczne jest ponowne zalogowanie się do systemu i dopiero wtedy można uruchomić dowolne polecenie Docker w celu przetestowania. Jako przykład uruchomiono polecenie docker ps, które wyświetla listę uruchomionych kontenerów:
$ docker ps

Jak widać na powyższym zrzucie ekranu, zostało ono wykonane bez błędów i w imieniu normalnego użytkownika.
Aby w pełni przetestować Dockera, można pobrać obraz testowy z hello-world w celu weryfikacji. Aby to zrobić, należy go uruchomić:
$ docker run hello-world

Polecenie docker run pobierze obraz oprogramowania z internetowego repozytorium docker hub, oficjalnego rejestru przechowywania obrazów oprogramowania od Dockera, który jest używany domyślnie, i automatycznie go uruchomi. Przykład wyświetla frazę Hello from Docker! co oznacza, że obraz został pomyślnie pobrany i uruchomiony.