Jak nainstalovat Docker na Ubuntu: Kompletní průvodce pro začátečníky (oficiální metoda)

markdown.## 1. Úvod

Když si nastavujete vývojové prostředí na Ubuntu, situace, kdy si řeknete „prozatím si jen nainstalujeme Docker“, se stávají čím dál častějšími. Webové aplikace, dávkové zpracování, testovací databáze, testovací middleware… Pokud tyto komponenty instalujete ručně pokaždé, spotřebujete obrovské množství času a úsilí jen na nastavení prostředí.

Právě zde se ukazuje, jak užitečná je technologie kontejnerové virtualizace Docker. S Dockerem můžete spravovat nejen samotnou aplikaci, ale i všechny potřebné knihovny a konfigurace společně jako „image“. Jakmile je Docker nainstalován na Ubuntu, můžete snadno:

  • Spustit nové vývojové prostředí během několika minut
  • Zajistit, aby všichni členové týmu mohli reprodukovat chování ve stejném prostředí
  • Lokálně vytvořit nastavení podobné produkci s lehkostí

Tyto výhody můžete využívat s minimálním úsilím.

Na druhou stranu, pro ty, kteří používají Docker poprvé, existuje řada běžných úskalí:

  • Nevíte, který instalační postup je skutečně správný
  • Nerozumíte rozdílu mezi výchozím repozitářem Ubuntu a oficiálním repozitářem Dockeru
  • Setkáváte se s chybami oprávnění kvůli nejasnostem, kdy použít sudo

Když hledáte „ubuntu install docker“, najdete spoustu článků s dlouhými sekvencemi příkazů, ale často selhávají v tom, že vysvětlí proč jsou tyto kroky nutné nebo co označuje kompletní instalaci.

目次

1-1. Cíl tohoto článku

Tento článek je určen čtenářům, kteří chtějí nainstalovat Docker na Ubuntu, a pokrývá následující klíčové body:

  • Aktuálně běžný postup instalace Dockeru na Ubuntu
  • Snadněji spravovatelný instalační způsob pomocí oficiálního repozitáře
  • Jak spouštět příkaz docker bez sudo
  • Ověření po instalaci a základní nezbytné příkazy
  • Úvod k běžně používaným nástrojům, jako je Docker Compose

Namísto pouhého výpisu příkazů tento průvodce vysvětluje proč je každý krok nutný, což vám pomůže v budoucnu snadněji udržovat prostředí.

1-2. Cílové publikum a předpoklady

Tento článek je určen čtenářům, kteří:

  • Rozumí základním operacím v Ubuntu (otevírání terminálu, používání příkazu apt atd.)
  • Jsou vývojáři nebo začínající inženýři, kteří Docker zkouší poprvé
  • Zvažují migraci stávajících testovacích prostředí do kontejnerů

Pokročilé znalosti správy Linuxu nejsou vyžadovány. Pokud vám nevadí psát příkazy v terminálu, tento průvodce by měl stačit.

1-3. Struktura článku a jak jej číst

Článek postupuje v následujícím pořadí:

  • Kontrola předpokladů
  • Instalační metody (oficiální repozitář / skriptový)
  • Nastavení oprávnění a ověření
  • Instalace Docker Compose
  • Řešení problémů a další kroky

Můžete si článek přečíst od začátku do konce, nebo pokud je Docker již nainstalován, můžete se soustředit jen na sekce „Oprávnění“ nebo „Compose“.

2. Předpoklady a příprava

Instalace samotného Dockeru je relativně jednoduchá, ale v závislosti na verzi Ubuntu nebo existujícím prostředí je několik bodů, které stojí za to předem zkontrolovat. Tato sekce shrnuje předpoklady a přípravy potřebné pro hladkou instalaci.

2-1. Podporované verze Ubuntu

Docker funguje na mnoha verzích Ubuntu, ale následující LTS vydání jsou nejčastěji používána:

  • Ubuntu 22.04 LTS (doporučeno)
  • Ubuntu 20.04 LTS
  • Ubuntu 24.04 LTS (nejnovější)

LTS (Long Term Support) vydání poskytují dlouhodobou stabilitu, což je ideální pro udržování vývojových prostředí založených na Dockeru.

Vydání mimo LTS (např. 23.10) lze také použít, ale LTS verze jsou obecně preferovány v profesionálním prostředí.

2-2. Předinstalované Docker balíčky

.Ubuntu’s default repository includes a package called docker.io. However, this is not the official Docker package provided by Docker Inc., and updates tend to lag behind. Therefore, installing Docker from the official repository is strongly recommended.

First, check and remove any existing Docker-related packages if necessary:

sudo apt remove docker docker.io containerd runc

If the message indicates that nothing is installed, no action is required.

2-3. Updating APT and Installing Required Packages

Before adding Docker’s official repository, update APT and install required tools:

sudo apt update
sudo apt install -y ca-certificates curl gnupg

These tools are required to add Docker’s GPG key and repository securely.

2-4. Verifying Administrator Privileges (sudo)

Docker installation requires sudo privileges. If your account does not have sudo access, switch to an administrator account or request permission.

You can verify sudo access with the following command:

sudo -v

If you are prompted for a password and the command succeeds, you are ready to proceed.

2-5. Checking Network Connectivity

Installing Docker requires access to external repositories, so an active internet connection is mandatory. In corporate or proxy environments, GPG key retrieval may fail due to access restrictions.

In such cases, consult your network administrator regarding proxy settings or allowlist configurations.

2-6. Choosing the Installation Method

There are three main ways to install Docker:

  1. Install via the official Docker repository (Recommended)
  2. Use the get.docker.com installation script (Quick and easy)
  3. Manually download and install Docker .deb packages (Special cases)

This article focuses primarily on the official repository method, which is the most common and easiest to maintain.

3. Installing Docker

Now let’s install Docker on Ubuntu. Although multiple installation methods exist, this guide focuses on the official Docker repository method, which is the most reliable and widely used in production environments.

This method allows stable upgrades via apt upgrade, making it ideal for long-term use.

3-1. Adding the Official Docker Repository (Recommended)

First, register the official GPG key provided by Docker and add Docker’s repository to APT.
Once this is configured correctly, you can avoid accidentally installing the outdated docker.io package from Ubuntu’s default repository.

3-1-1. Registering the GPG Key

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • /etc/apt/keyrings/ is the recommended key storage location for Ubuntu 22.04 and later
  • --dearmor converts the key into binary format

This step allows APT to trust the official Docker repository.

3-1-2. Adding the Repository

Next, add Docker’s repository to APT’s source list.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Key points:

  • $(. /etc/os-release && echo $VERSION_CODENAME) automatically inserts the correct Ubuntu codename (such as jammy or focal )
  • Only the stable repository is added

3-1-3. Updating Repository Information

After adding the repository, update the APT index.

sudo apt update

At this point, docker-ce (Docker Engine) should appear as an installable package.

3-2. Installing Docker Engine

Now install the main Docker packages.

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Package roles:

. docker-ce : jádro Docker Engine
docker-ce-cli : rozhraní příkazové řádky Dockeru
containerd.io : hlavní runtime kontejnerů používaný Dockerem
docker-buildx-plugin : pokročilé funkce pro sestavování, např. multi‑platformní buildy
docker-compose-plugin* : Docker Compose V2 (příkaz docker compose)

Po instalaci se Docker daemon spustí automaticky.

3-3. Ověření instalace

Zkontrolujte stav Dockeru pomocí následujícího příkazu:

sudo systemctl status docker

Pokud vidíte active (running), Docker funguje správně.

Stiskněte q pro ukončení zobrazení stavu.

3-4. Volitelné: instalace pomocí skriptu pro pohodlí

Docker také poskytuje jednorázový instalační skript.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Výhody:

  • Méně příkazů a rychlé nastavení
  • Ideální pro jednoduchá nebo dočasná prostředí

Nevýhody:

  • Obtížná správa verzí
  • Často nedoporučováno pro produkční nebo dlouhodobé použití

Ačkoliv je to pohodlné pro začátečníky, tento článek upřednostňuje udržovatelnost a proto se zaměřuje na metodu s oficiálním repozitářem.

3-5. Poznámky k nejnovějším verzím Ubuntu (např. 24.04)

Bezprostředně po hlavním vydání Ubuntu nemusí oficiální repozitář Dockeru ještě plně podporovat novou verzi.
V takových případech ověřte následující:

  • že umístění a formát GPG klíče odpovídají aktuálním specifikacím
  • že VERSION_CODENAME je oficiálně podporován
  • že během apt update nedochází k chybám podpisu

Pokud je podpora zpožděná, dočasné použití skriptu get.docker.com může být praktickým řešením.

4. Uživatelská oprávnění a spuštění Dockeru bez sudo

Po instalaci Dockeru můžete chtít okamžitě začít používat příkaz docker. Ve výchozím nastavení musíte před každý příkaz přidat sudo.

Toto chování je záměrné z bezpečnostních důvodů, ale je nepohodlné pro každodenní vývoj nebo učení. Pro vyřešení můžete přidat svého uživatele do skupiny docker, což umožní spouštět Docker příkazy bez sudo.

4-1. Proč je důležité spouštět bez sudo

Na Ubuntu daemon Dockeru (dockerd) běží s právy roota.
Proto vytváření nebo odstraňování kontejnerů pomocí příkazu docker normálně vyžaduje přístup roota.

Skupina docker existuje právě pro řešení této potřeby.

  • Uživatelé v této skupině mohou přímo přistupovat k Docker daemonu
  • To umožňuje příkazy jako docker run bez sudo
  • Toto nastavení je téměř nezbytné pro vývojové použití

Všimněte si, že skupina docker v podstatě poskytuje oprávnění blízká rootu, takže v sdílených prostředích je třeba opatrnosti.
(Pro osobní desktopy nebo WSL2 to obvykle není problém.)

4-2. Přidání uživatele do skupiny docker

Přidejte aktuálně přihlášeného uživatele do skupiny docker:

sudo usermod -aG docker $USER

Tento příkaz přidá uživatele do skupiny. Volba -aG znamená přidat do skupiny.

4-3. Aplikace změn

Změny členství ve skupině se projeví po odhlášení a opětovném přihlášení.

Pro okamžité použití změny můžete také spustit:

newgrp docker

Tím se spustí nová relace shellu s oprávněními skupiny docker.

4-4. Ověření běhu bez sudo

Nyní vyzkoušejte Docker bez sudo:

docker run hello-world

Úspěšný výstup:

  • Hello from Docker!
  • Image byla stažena a zpráva se zobrazila

Pokud nastane chyba, zkontrolujte následující:

  • Odhlásili jste se a znovu přihlásili po změně členství ve skupině?
  • Používá se /usr/bin/docker?
  • Běží Docker daemon (systemctl status docker )?

4-5. Bezpečnostní úvahy (Důležité)

Skupina docker poskytuje mocná oprávnění, která jsou v podstatě ekvivalentní přístupu roota.

  • Čtení libovolných souborů
  • Připojování adresářů hostitele do kontejnerů
  • Provádění síťových operací
  • Řízení systému přes Docker socket

.Toto je přijatelné pro osobní systémy, ale správa uživatelů je kritická na sdílených serverech.

V takových případech můžete zvážit rootless Docker, který je probírán v pozdějších částech.

5. Ověření spuštění a provozu

Jakmile je instalace Dockeru a konfigurace oprávnění dokončena, dalším krokem je ověřit, že Docker funguje správně.
Tato část vysvětluje, jak zkontrolovat stav služby Docker a skutečně spustit kontejnery.

5-1. Kontrola stavu Docker daemonu

Nejprve ověřte, že Docker běží správně na pozadí.

sudo systemctl status docker

Klíčové indikátory stavu:

  • active (running) → Provozuje se normálně
  • inactive → Neběží (musí být spuštěn ručně)
  • failed → Chyba konfigurace nebo závislosti

Pokud je stav inactive nebo failed, spusťte Docker následujícím příkazem:

sudo systemctl start docker

Aby Docker startoval automaticky při bootování OS:

sudo systemctl enable docker

5-2. Ověření provozu pomocí kontejneru hello-world

Nejčastější způsob, jak ověřit instalaci Dockeru, je spuštění oficiálního obrazu hello-world.

docker run hello-world

Tento příkaz provede následující kroky:

  1. Stáhne obraz z Docker Hubu, pokud není lokálně dostupný
  2. Spustí kontejner z tohoto obrazu
  3. Zobrazí testovací zprávu a ukončí se

Pokud je úspěšné, uvidíte výstup podobný následujícímu:

Hello from Docker!
This message shows that your installation appears to be working correctly.

Pokud se tato zpráva objeví, Docker je nainstalován a funguje správně.

5-3. Vyzkoušení základních Docker příkazů

Jakmile je základní provoz potvrzen, vyzkoušejte některé často používané Docker příkazy.

5-3-1. Výpis Docker obrazů

docker images

Zobrazí seznam obrazů stažených lokálně. Pokud se v seznamu objeví hello-world, vše funguje podle očekávání.

5-3-2. Kontrola běžících kontejnerů

docker ps

Tento příkaz vypíše aktuálně běžící kontejnery.
(Kontejner hello-world se okamžitě ukončí a obvykle se nezobrazí.)

Pro zobrazení i zastavených kontejnerů použijte:

docker ps -a

5-3-3. Příklad spuštění oficiálního obrazu

Vyzkoušejte jednoduchý webový server Nginx:

docker run -d -p 8080:80 nginx
  • -d → Spustí na pozadí
  • -p → Namapuje port 8080 na hostiteli na port 80 v kontejneru

Otevřete http://localhost:8080 ve svém prohlížeči a uvidíte výchozí stránku Nginx.

5-4. Zastavení a odstranění kontejnerů

Běžící kontejner můžete zastavit následujícím příkazem:

docker stop <container-id>

Pro odstranění kontejneru použijte:

docker rm <container-id>

Pro odstranění nepoužívaných obrazů:

docker rmi <image-id>

Pamatujte, že závislosti následují pořadí kontejner → obraz → svazek, takže je odstraňujte opatrně.

5-5. Časté příčiny chyb

● Chyby oprávnění

Got permission denied while trying to connect to the Docker daemon socket
→ Uživatel není přidán do skupiny docker

● Docker daemon neběží

Cannot connect to the Docker daemon at unix:///var/run/docker.sock
→ Spusťte Docker pomocí systemctl start docker

● Síťové problémy bránící stahování obrazů

→ Zkontrolujte nastavení proxy, konfiguraci DNS nebo síťová omezení

● Stále nainstalovaný balíček legacy docker.io

→ Odinstalujte jej úplně a znovu nainstalujte Docker z oficiálního repozitáře

6. Instalace a používání Docker Compose

Jedním z nezbytných nástrojů pro práci s Dockerem ve velkém měřítku je Docker Compose.
Moderní webové aplikace často sestávají z více komponent, jako jsou databáze, cache, pracovní procesy a webové servery. Spravovat je jednotlivě pomocí příkazů docker run se rychle stává nepraktickým.

Docker Compose vám umožní definovat konfigurace více kontejnerů v jediném souboru a spravovat je společně, což z něj činí jeden z nejčastěji používaných nástrojů ve skutečném vývoji.

.

6-1. Ověření instalace Docker Compose V2

Při instalaci Dockeru z oficiálního repozitáře je Docker Compose automaticky nainstalován jako plugin.

Ověřte instalaci následujícím příkazem:

docker compose version

Pokud je instalace úspěšná, měli byste vidět výstup podobný tomuto:

Docker Compose version v2.x.x

Pokud se zobrazí chyba, například docker: 'compose' is not a docker command, nainstalujte plugin ručně:

sudo apt install docker-compose-plugin

6-2. Výhody Docker Compose

Klíčové výhody Docker Compose zahrnují:

  • Jednotná správa více kontejnerů (spuštění, zastavení, restart)
  • Konfigurace jako kód, zajišťující reprodukovatelné prostředí
  • Snadné sdílení nastavení aplikací, API a databází
  • Spouštění vývojových prostředí jedním příkazem docker compose up

To činí Docker Compose téměř nepostradatelným pro vývoj aplikací.

6-3. Základní struktura konfiguračního souboru Compose

Docker Compose používá soubor pojmenovaný docker-compose.yml (nebo compose.yaml) k definování služeb.
Jako minimální příklad vytvořte jednoduchou konfiguraci, která spustí Nginx.

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"

Spusťte následující příkaz v adresáři, který obsahuje soubor:

docker compose up -d

Nginx se spustí na pozadí. Otevřete v prohlížeči http://localhost:8080 a ověřte to.

6-4. Příklad: Vícekontejnerové nastavení (Web + Databáze)

Skutečná síla Compose se projeví při správě více kontejnerů současně.
Například spuštění webové aplikace společně s MySQL lze nakonfigurovat následovně:

services:
  app:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

Vysvětlení:

  • depends_on zajišťuje, že databáze se spustí před aplikací
  • volumes uchovává data databáze
  • Více služeb je spravováno v jediném YAML souboru

Jedná se o vysoce praktický vzor pro vývojová prostředí.

6-5. Často používané příkazy Docker Compose

Tyto příkazy je užitečné si zapamatovat:

CommandDescription
docker compose up -dStart containers in the background
docker compose downStop and remove containers and networks
docker compose buildBuild images using Dockerfile
docker compose psList containers managed by Compose
docker compose logs -fView logs (optionally per service)

Používání Compose vám umožní opakovaně vytvářet identická prostředí, což je ideální pro týmový vývoj.

6-6. Doporučené případy použití Compose ve vývoji

  • Jedno‑příkazové nastavení lokálního prostředí
  • Testování v prostředích blízkých produkci
  • Spouštění kombinovaných služeb, jako jsou databáze, cache a fronty zpráv
  • Uchovávání dat pomocí svazků
  • Správa konfigurace pomocí proměnných prostředí v souboru .env
  • Podpora složitých architektur mikroservis

Jakmile budete mít Docker a Compose pod kontrolou, čas potřebný k nastavení prostředí se dramaticky zkrátí, což výrazně zvyšuje efektivitu vývoje.

7. Bezpečnostní a provozní úvahy

Docker je mimořádně výkonný a pohodlný nástroj, ale „být kontejnerizován“ automaticky neznamená „být bezpečný“.
Při pravidelném používání Dockeru na Ubuntu je důležité pochopit několik zásadních bezpečnostních a provozních bodů.

Tato sekce uspořádává nezbytné znalosti pro bezpečný a stabilní provoz Dockeru tak, aby je i začátečníci snadno pochopili.

7-1. Skupina docker má „prakticky root“ oprávnění

Skupina docker, kterou jste nastavili dříve, ve skutečnosti poskytuje velmi silná oprávnění.
Uživatelé patřící do skupiny docker mohou ovládat hostitelský OS přes Docker socket, což je v podstatě ekvivalentní přístupu na úrovni root.

● Klíčové body, na které je třeba si dát pozor

  • Nepřidávejte libovolné uživatele do skupiny docker na sdílených serverech
  • Pochopte důsledky, ne jen pohodlí „není potřeba sudo“
  • V organizacích s přísnými bezpečnostními politikami může být vyžadováno schválení administrátorem

.Toto je na osobních strojích s Ubuntu nebo vývojových PC zřídka problém, ale na produkčních serverech je vyžadováno opatrné posouzení.

7-2. Zvažování rootless Dockeru (pokročilá volba)

Docker poskytuje funkci nazvanou rootless mode,
která umožňuje běh Docker daemonu pod běžným uživatelským účtem místo rootu.

Výhody:

  • Výrazně snižuje riziko zneužití oprávnění hostitelského OS
  • Umožňuje bezpečnější používání Dockeru v prostředích s přísnými bezpečnostními požadavky

Nevýhody:

  • Některé síťové funkce jsou omezené
  • Konfigurace je pro začátečníky složitější
  • Chování se může lišit od standardního Dockeru

Rootless mode není nutný pro většinu vývojových scénářů,
ale může být životaschopnou volbou v podnicích nebo v prostředích zaměřených na soulad s předpisy.

7-3. Čištění nepoužívaných obrazů a kontejnerů

Postupem času může Docker spotřebovat velké množství místa na disku, aniž byste si toho všimli.
Nevyužívané kontejnery, obrazy a svazky se mohou hromadit a snadno překročit 100 GB.

● Příkazy pro odstraňování nepoužívaných zdrojů

Odstraňování nepoužívaných obrazů

docker image prune

Odstraňování kontejnerů a sítí najednou

docker system prune

Agresivní úklid (používejte opatrně)

docker system prune -a

Volba -a odstraňuje všechny nepoužívané obrazy, proto ji používejte obezřetně.

7-4. Vyhněte se používání značky „latest“ v produkci

Zatímco značky jako nginx:latest jsou během vývoje pohodlné, nedoporučuje se je používat v produkci.

Důvody:

  • Přesná verze za latest není zaručena
  • Neočekávané aktualizace mohou způsobit selhání za běhu
  • Ztráta reprodukovatelnosti vede k nestabilním nasazením

Doporučený přístup: explicitně připínat verze

Příklad:

image: nginx:1.25

Explicitní verzování je základním pravidlem pro produkční prostředí.

7-5. Používejte oficiální základní obrazy v Dockerfiles

Při tvorbě Dockerfile dodržujte následující zásady:

  • Upřednostňujte oficiální obrazy (knihovní obrazy)
  • Vyhýbejte se obrazům udržovaným neznámými nebo nedůvěryhodnými autory
  • Při použití lehkých OS obrazů, jako je Alpine, zkontrolujte stav podpory zranitelností

Nedůvěryhodné obrazy mohou obsahovat malware.
I ve vývojových prostředích se jim vyhýbejte, kdykoli je to možné.

7-6. Buďte opatrní při vystavování sítí a portů

Když kontejnery vystavují porty na hostitelském OS,
mohou se stát přístupnými zvenčí systému.

Opatření:

  • Vyhněte se zbytečným mapování -p 80:80
  • Pro lokální použití svazujte pouze na localhost, např. -p 127.0.0.1:8080:80
  • Kombinujte s nastavením firewallu, jako je UFW
  • Pro produkci použijte reverzní proxy (např. Nginx) pro vyšší bezpečnost

Správa portů je zvláště kritická na VPS nebo cloudových serverech s Ubuntu.

7-7. Správa logů při selháních

Logy Dockeru lze zobrazit následujícím příkazem:

docker logs <container-name>

Velké objemy logů mohou rychle spotřebovat místo na disku,
proto zvažte konfiguraci log driverů a rotace logů.

8. Časté problémy a řešení

Ačkoliv je Docker výkonný nástroj, na Ubuntu se mohou objevit neočekávané chyby kvůli rozdílům v prostředí nebo chybám v konfiguraci.
Tato sekce shrnuje běžné problémy a jejich řešení, od začátečnické po středně pokročilou úroveň.

8-1. Nelze se připojit k Docker daemonu

● Chybová zpráva

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

● Příčiny a řešení

  1. Docker daemon neběží : sudo systemctl start docker
  2. Změny ve skupině docker nebyly aplikovány : Odhlaste se a přihlaste znovu, nebo spusťte newgrp docker
  3. Problém s oprávněním k /var/run/docker.sock : Ujistěte se, že uživatel patří do skupiny docker

8-2. Chyby „Permission Denied“

● Typická chyba

Got permission denied while trying to connect to the Docker daemon socket

● Řešení

Příčinou je téměř vždy chybějící konfigurace skupiny docker.

sudo usermod -aG docker $USER

Poté se odhlaste a přihlaste znovu.

answer.### 8-3. GPG Errors When Adding the APT Repository

● Error examples

NO_PUBKEY XXXXXXXX

or

The following signatures couldn't be verified

● Causes and fixes

  • GPG key was not registered correctly
  • curl failed due to network restrictions

Re-register the key with:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
 | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Then run sudo apt update again.

8-4. Port Binding Conflicts

● Error example

Bind for 0.0.0.0:80 failed: port is already allocated.

● Cause

  • The port is already used by another process on the host
  • Another Docker container is using the same port

● Solutions

Check which process is using the port:

sudo lsof -i -P -n | grep :80

Check running containers:

docker ps

Change the port mapping:

-p 8080:80

8-5. Image Download Failures

● Common causes

  • Network restrictions (corporate environments)
  • DNS configuration issues
  • Blocked access to Docker Hub

● Solutions

  • Change DNS servers (e.g. 1.1.1.1 or 8.8.8.8)
  • Verify proxy configuration
  • Use a VPN if required by the environment

8-6. Disk Space Exhaustion Errors

● Typical message

no space left on device

● Resolution

Remove unused resources:

docker system prune -a

Review images, containers, and volumes:

docker images
docker ps -a
docker volume ls

Disk space exhaustion is one of the most common Docker operational issues.