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ů.
Související příspěvky
- Jak nainstalovat a nakonfigurovat docker ve Fedoře 34/35
- Jak nainstalovat a nakonfigurovat docker v Debianu 11
- Jak nainstalovat a nakonfigurovat docker v Centos 8
- 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:
- Systém Ubuntu 20.04
- Přístup k internetu ze systému
- Přístup uživatele root nebo uživatel s přístupem sudo
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 -y 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/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
K nastavení stabilního úložiště použijte následující příkaz.
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(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 -y 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:
Seznam verzí dostupných ve vašem úložišti:
$ sudo apt-cache madison docker-ce
docker-ce | 5:20.10.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.8~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.7~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.6~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.5~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.4~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.3~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.2~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.1~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:20.10.0~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.14~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.13~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
Nyní můžete nainstalovat konkrétní verzi pomocí řetězce verze z druhého sloupce, například 5:19.03.9~3-0~ubuntu-focal
.
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Příklad:
sudo apt-get install docker-ce=5:19.03.9~3-0 docker-ce-cli=5:19.03.9~3-0 containerd.io
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 soubor .deb pro své vydání a nainstalovat 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/ubuntu/dists/, vyberte verzi Ubuntu a 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
Démon Docker se spustí automaticky.
Ověřte, zda je Docker Engine správně nainstalován, spuštěním obrazu hello-world.
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.
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 Fri 2021-10-08 05:35:57 UTC; 3min 50s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 146750 (dockerd)
Tasks: 8
Memory: 30.0M
CGroup: /system.slice/docker.service
└─146750 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.378859538Z" level=warning msg="Your kernel does not support CPU r>
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.378869630Z" level=warning msg="Your kernel does not support cgrou>
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.378877385Z" level=warning msg="Your kernel does not support cgrou>
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.379112713Z" level=info msg="Loading containers: start."
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.500736755Z" level=info msg="Default bridge (docker0) is assigned >
Oct 08 05:35:57 ip-172-26-11-229 dockerd[146750]: time="2021-10-08T05:35:57.560469239Z" level=info msg="Loading containers: done."
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:9ade9cc2e26189a19c2e8854b9c8f1e14829b51c55a630ee675a5a9540ef6ccf
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í:
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
ubuntu docker
Nyní mohu dělat docker:
Mohu spustit alpine image
$ 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 Ubuntu 20.04.