Docker je open source platforma pro kontejnerizaci. Umožňuje vývojářům zabalit aplikace do kontejnerů – standardizovaných spustitelných komponent, které kombinují zdrojový kód aplikace s knihovnami operačního systému (OS) a závislostmi potřebnými ke spuštění tohoto kódu v jakémkoli prostředí.
Docker je sada produktů platformy jako služby, která využívá virtualizaci na úrovni OS k dodávání softwaru v balíčcích nazývaných kontejnery. Kontejnery jsou od sebe izolované a sdružují svůj vlastní software, knihovny a konfigurační soubory; mohou spolu komunikovat prostřednictvím dobře definovaných kanálů.
Podívejte se také na tyto odkazy:
- Jak nainstalovat a používat Docker v Ubuntu 20.04
- Jak nainstalovat a nakonfigurovat docker v Centos 8
- Jak nainstalovat a nakonfigurovat docker ve Fedoře 34/35
- Začínáme s Docker Compose with Example
- Docker jako sestavovací agent – Spusťte Jenkins staví na Dockeru
Předpoklady
Chcete-li pokračovat, ujistěte se, že máte:
- Aktuální systém Debian 11
- Přístup k internetu ze systému
- Přístup uživatele root nebo uživatel s přístupem sudo
- Znalost terminálu Linux
Obsah
- Ujistěte se, že jsou vaše systémové balíčky aktuální
- Odinstalujte předchozí verze, pokud existují
- Nainstalujte modul dockeru pomocí úložiště
- Instalace modulu dockeru z balíčku
- Instalujte pomocí praktického skriptu
- Ověřte instalaci
- Provedení příkazu Docker bez sudo
- Odinstalování dockeru, když je déle potřeba
1. Ujistěte se, že jsou vaše systémové balíčky aktuální
Než budete pokračovat, ujistěte se, že jsou vaše balíčky aktualizovány
sudo apt update
sudo apt upgrade -y
2. Odinstalujte předchozí verze, pokud existují
Balíčky poskytující starší verze Dockeru jsou docker
, docker.io
nebo docker-engine
.
Použijme tento příkaz, abychom zajistili, že tyto balíčky v našem systému neexistují:
sudo apt-get remove docker docker-engine docker.io containerd runc
Je v pořádku, pokud apt-get hlásí, že žádný z těchto balíčků není nainstalován.
Instalace dockeru
Docker Engine můžete nainstalovat různými způsoby v závislosti na vašich potřebách:
- Můžete nastavit úložiště dockeru a nainstalovat docker pomocí apt
- Balíčky DEB si můžete stáhnout a nainstalovat ručně
- K instalaci Dockeru můžete použít automatické skripty pro usnadnění
3. Nainstalujte docker engine pomocí úložiště
Na novém hostiteli dockerová úložiště neexistují. Poprvé na novém hostitelském počítači musíte nastavit úložiště Docker. Poté můžete nainstalovat a aktualizovat Docker z úložiště.
Pojďme nainstalovat následující balíčky, které umožní apt používat úložiště přes HTTPS:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Přidejte oficiální klíč GPG společnosti Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gp
K nastavení stabilního úložiště použijte následující příkaz. Chcete-li přidat noční nebo testovat úložiště, přidejte slovo nightly
nebo test
(nebo obojí) za slovem stable
v příkazech níže.
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
Instalovat Docker Engine
Aktualizujte index balíčků apt, protože jsme přidali nové úložiště:
sudo apt-get update
Nyní nainstalujme nejnovější verzi Docker Engine a kontejnerové usi
sudo apt-get install docker-ce docker-ce-cli containerd.io
Volitelné:Instalace konkrétní verze
Pokud máte požadavky, které vyžadují konkrétní verzi, můžete tak učinit. Chcete-li nainstalovat konkrétní verzi:
1. Seznam verzí dostupných ve vašem úložišti:
$ sudo apt-cache madison docker-ce
docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
Nyní můžete nainstalovat konkrétní verzi pomocí řetězce verze z druhého sloupce, například 5:20.10.7~3-0~debian-bullseye
.
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Příklad:
sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io
Po dokončení instalace se automaticky spustí démon Docker.
4. Nainstalujte docker engine z balíčku
Pokud k instalaci Docker Engine nemůžete použít úložiště Docker, můžete si stáhnout .deb
soubor pro vaše vydání a nainstalujte jej ručně. Pokaždé, když chcete upgradovat Docker, musíte si stáhnout nový soubor.
Přejděte na https://download.docker.com/linux/debian/dists/, vyberte svou verzi Debianu – (Bullseye) a poté přejděte na pool/stable/
, zvolte amd64
, armhf
nebo arm64
a stáhněte si soubor .deb pro verzi Docker Engine, kterou chcete nainstalovat.
Nainstalujte Docker Engine a změňte cestu níže na cestu, ze které jste stáhli balíček Docker.
sudo dpkg -i /path/to/package.deb
Po dokončení instalace se automaticky spustí démon Docker.
5. Nainstalujte pomocí pohodlného skriptu
Docker poskytuje pohodlný skript na get.docker.com pro rychlou a neinteraktivní instalaci Dockeru do vývojových prostředí.
Tento příklad stáhne skript z get.docker.com a spustí jej za účelem instalace nejnovější stabilní verze Dockeru v systému Linux:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
6. Ověřte instalaci
Po instalaci se docker spustí jako démon. Ke kontrole, zda je ukotvitelný panel spuštěn, používáme systemctl status docker
příkaz:
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 13456 (dockerd)
Tasks: 7
Memory: 39.0M
CPU: 265ms
CGroup: /system.slice/docker.service
└─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"
Active: active (running)
ukazuje, že docker byl úspěšně spuštěn.
Můžeme spustit hello-world
obrázek pro otestování, že ukotvitelný panel funguje podle očekávání:
sudo docker run hello-world
Tento příkaz stáhne testovací obraz a spustí jej v kontejneru. Když kontejner běží, vytiskne informační zprávu a ukončí se.
Dostal jsem tento výstup, který ukazuje, že to funguje dobře:
$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
7. Provedení příkazu Docker bez sudo
Ve výchozím nastavení může příkaz docker spustit pouze uživatel root nebo uživatel ve skupině dockerů, která se automaticky vytvoří během procesu instalace Dockeru. Pokud se pokusíte spustit příkaz docker bez předpony sudo nebo aniž byste byli ve skupině docker, dostanete výstup takto:
$ docker ps
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
Pokud se chcete vyhnout psaní sudo při každém spuštění příkazu docker, přidejte své uživatelské jméno do skupiny docker:
sudo usermod -aG docker ${USER}
Chcete-li použít nové členství ve skupině, odhlaste se ze serveru a znovu se přihlaste nebo zadejte následující:
sudo su - ${USER}
Budete vyzváni k zadání hesla uživatele, abyste mohli pokračovat.
Potvrďte, že je váš uživatel nyní přidán do skupiny dockerů, zadáním:
id -nG
Vidím to a potvrzuji, že nyní patřím do skupiny dockerů
$ id -nG
admin docker
Nyní mohu dělat docker bez sudo:
Nechte nás otestovat spuštěním obrazu.
$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #
Úspěšně jsme do našeho systému nainstalovali docker!
8. Odinstalování dockeru, když je déle potřeba
Pro úplné vymazání docker engine ze systému musíme odinstalovat balíčky Docker Engine, CLI a Containerd:
sudo apt-get purge docker-ce docker-ce-cli containerd.io -y
Obrazy, kontejnery, svazky nebo přizpůsobené konfigurační soubory na vašem hostiteli nejsou automaticky odstraněny. Chcete-li odstranit všechny obrázky, kontejnery a svazky:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Všechny upravené konfigurační soubory musíte odstranit ručně.
Závěr
V této příručce se nám podařilo nainstalovat docker na náš systém Debian 11.