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.