Kompletní průvodce tvorbou a správou Docker obrazů na Ubuntu | Instalace, optimalizace a řešení problémů

目次

1. Úvod

Co je Docker?

Docker je platforma, která využívá technologii virtualizace založenou na kontejnerech k efektivnímu vývoji, distribuci a spouštění aplikací. Na rozdíl od tradičních virtuálních strojů (VM) kontejnery sdílejí jádro hostitelského operačního systému, což umožňuje rychlejší dobu spuštění a nižší spotřebu zdrojů.

Výhody používání Dockeru na Ubuntu

Ubuntu je jednou z distribucí Linuxu, které jsou vysoce kompatibilní s Dockerem. Klíčové výhody zahrnují:

  • Oficiální podpora : Docker oficiálně podporuje Ubuntu a instalace je snadná prostřednictvím oficiálního repozitáře.
  • Stabilní správa balíčků : Správce balíčků APT v Ubuntu usnadňuje správu verzí Dockeru.
  • Rozsáhlá podpora komunity : Ubuntu má velkou globální uživatelskou základnu, což usnadňuje hledání řešení při řešení problémů.

Co se naučíte v tomto článku

Tento článek vás krok za krokem provede následujícími tématy:

  1. Jak nainstalovat Docker na Ubuntu
  2. Základní operace s Dockerovými obrazy
  3. Vytváření vlastních obrazů pomocí Dockerfile
  4. Konfigurace japonského jazykového prostředí v kontejneru Ubuntu
  5. Optimalizace a zmenšení velikosti Dockerových obrazů
  6. Vývoj aplikací v kontejneru Ubuntu
  7. Běžné chyby a řešení problémů

Tento průvodce je užitečný jak pro začátečníky, tak pro pokročilé uživatele, takže ho neváhejte použít jako referenci.

2. Instalace Dockeru na Ubuntu

Instalace Dockeru pomocí oficiálního repozitáře

Na Ubuntu můžete snadno nainstalovat Docker pomocí oficiálního repozitáře. Postupujte podle následujících kroků pro jeho nastavení.

1. Odstranění existujících balíčků Dockeru

Ubuntu poskytuje ve výchozím nastavení balíček s názvem docker.io, ale může jít o zastaralou verzi. Doporučuje se jej nejprve odstranit.

sudo apt remove docker docker-engine docker.io containerd runc

2. Instalace požadovaných balíčků

Před instalací Dockeru nainstalujte potřebné závislé balíčky.

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Přidání oficiálního repozitáře Dockeru

Přidejte oficiální GPG klíč Dockeru a nastavte repozitář.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) 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

4. Instalace Dockeru

Jakmile je repozitář přidán, nainstalujte Docker.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. Ověření instalace

Chcete-li zkontrolovat, zda byl Docker nainstalován správně, zobrazte informace o verzi.

docker --version

Počáteční nastavení po instalaci

1. Spuštění a povolení služby Docker

Spusťte službu Docker a nakonfigurujte ji tak, aby se automaticky spouštěla při startu systému.

sudo systemctl start docker
sudo systemctl enable docker

2. Povolení ne-root uživatelům používat Docker

Ve výchozím nastavení může Docker spouštět pouze uživatel root. Chcete-li umožnit běžnému uživateli používat příkazy Dockeru, přidejte uživatele do skupiny docker.

sudo usermod -aG docker $USER

Chcete-li změny aplikovat, odhlaste se a přihlaste se znovu.

3. Testování Dockeru

Spusťte kontejner hello-world, abyste zkontrolovali, zda Docker funguje správně.

docker run hello-world

Pokud uvidíte zprávu „Hello from Docker!“, instalace byla úspěšná.

3. Základní operace s Dockerovými obrazy

Co je Dockerový obrázek?

Dockerový obrázek slouží jako šablona pro vytváření kontejnerů. Použitím Dockerového obrazu založeného na Ubuntu můžete rychle nastavit prostředí Ubuntu v kontejneru.

Stahování Ubuntu obrázků z Docker Hubu

Docker Hub hostuje obrovskou sbírku oficiálních Dockerových obrázků. K stažení Ubuntu obrázku použijte následující příkaz:

docker pull ubuntu

Spouštění a zastavování kontejnerů

Můžete spustit kontejner pomocí staženého obrazu Ubuntu následujícím příkazem:

docker run -it ubuntu bash

Tento příkaz otevře shell uvnitř kontejneru Ubuntu, což vám umožní s ním přímo komunikovat.

Výpis běžících kontejnerů

Chcete‑li zjistit, které kontejnery jsou aktuálně spuštěny, použijte tento příkaz:

docker ps

Pro zobrazení všech kontejnerů, včetně zastavených, přidejte volbu -a:

docker ps -a

Zastavení a odstranění kontejnerů

Pro zastavení běžícího kontejneru použijte následující příkaz:

docker stop [container ID or name]

Pro odstranění nepotřebného kontejneru použijte tento příkaz:

docker rm [container ID or name]

Správa Docker obrazů

Pro výpis všech stažených Docker obrazů použijte následující příkaz:

docker images

Pro odstranění nepoužívaného obrazu použijte tento příkaz:

docker rmi [image ID]

4. Vytváření vlastních Docker obrazů pomocí Dockerfile

Co je Dockerfile?

Dockerfile je konfigurační soubor používaný k vytváření Docker obrazů. Definováním konkrétních instrukcí v Dockerfile můžete sestavit přizpůsobené Docker obrazy podle svých potřeb. To pomáhá standardizovat vývojová prostředí a zahrnout do obrazu potřebné balíčky.

Základní syntaxe Dockerfile

Dockerfile obvykle obsahuje následující klíčové příkazy:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefines the default command to run when the container starts
ENTRYPOINTSpecifies the main command executed when the container runs

Vytvoření vlastního Docker obrazu založeného na Ubuntu

Postupujte podle těchto kroků pro vytvoření vlastního Docker obrazu založeného na Ubuntu.

1. Vytvoření pracovního adresáře

Nejprve vytvořte nový projektový adresář a přejděte do něj.

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Vytvoření Dockerfile

V adresáři vytvořte soubor Dockerfile a přidejte následující obsah:

# Use the official Ubuntu base image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package lists and install basic tools
RUN apt update && apt install -y curl vim git

# Set the working directory
WORKDIR /workspace

# Default command executed when the container starts
CMD ["bash"]

3. Sestavení Docker obrazu

Použijte následující příkaz pro sestavení vlastního obrazu z Dockerfile.

docker build -t my-ubuntu-image .

Volba -t přiřadí obrazu jméno.

4. Ověření vytvořeného obrazu

Zkontrolujte seznam dostupných obrazů, abyste se ujistili, že nový obraz byl úspěšně vytvořen.

docker images

5. Spuštění kontejneru z vlastního obrazu

Spusťte kontejner pomocí nově vytvořeného vlastního obrazu.

docker run -it my-ubuntu-image

Tento kontejner by měl obsahovat nástroje jako curl a vim, jak je uvedeno v Dockerfile.

5. Konfigurace japonského jazykového prostředí v Ubuntu kontejneru

Ve výchozím nastavení je Docker obraz Ubuntu nastaven na angličtinu. Pokud potřebujete používat japonštinu, je nutná další konfigurace.

Nastavení japonské locale

Pro povolení japonského zobrazení a vstupu v Ubuntu kontejneru nainstalujte potřebné jazykové balíčky.

1. Instalace požadovaných balíčků

apt update
apt install -y language-pack-ja locales

2. Konfigurace locale

Nastavte locale a aplikujte nastavení.

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. Aplikace nastavení

export LANG=ja_JP.UTF-8

Nastavení japonského vstupu

Pro povolení japonského textového vstupu v terminálu nainstalujte ibus-mozc.

apt install -y ibus-mozc

Pokud používáte grafické prostředí, přidejte následující proměnné prostředí:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Používání GUI aplikací

Pro spuštění GUI aplikací uvnitř Docker kontejneru můžete použít X server.

Nainstalujte X server na hostitelském počítači a spusťte kontejner s povoleným X11.

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Optimalizace a zmenšování velikosti Docker obrazů

Optimalizace Docker image zvyšuje rychlost spouštění kontejnerů a snižuje využití úložiště. Tato část představuje metody pro vytváření odlehčených image.

Vytvoření odlehčeného image založeného na Ubuntu

Výchozí image ubuntu:latest je relativně velká. Pro zmenšení velikosti kontejneru zvažte použití menší alternativy, například ubuntu:minimal.

FROM ubuntu:minimal

Alternativně můžete použít Alpine Linux, který je podstatně menší než Ubuntu.

FROM alpine:latest
RUN apk add --no-cache bash curl

Tato metoda může snížit velikost image o několik stovek megabajtů.

Odstranění nepotřebných souborů pro zmenšení velikosti image

Po instalaci balíčků pomocí apt-get můžete odstranit nepotřebné cache soubory, aby se minimalizovala velikost image.

RUN apt update && apt install -y curl vim 
    && apt clean 
    && rm -rf /var/lib/apt/lists/*

Příkaz rm -rf /var/lib/apt/lists/* smaže seznam balíčků a odstraní zbytečná data.

Použití multi‑stage buildů

U multi‑stage buildů můžete použít dočasný kontejner pro sestavení závislostí a přitom zachovat finální image odlehčenou.

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

Tato technika vám umožní vyloučit z finální image zbytečné vývojové nástroje, čímž bude podstatně menší.

7. Praktický průvodce: Vývoj aplikací v Ubuntu kontejneru

V této části nastavíme vývojové prostředí uvnitř Ubuntu kontejneru a ukážeme, jak vyvíjet aplikace pomocí Dockeru.

Nastavení Python vývojového prostředí

Pro vytvoření Python vývojového prostředí uvnitř Docker kontejneru použijte následující Dockerfile.

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

Postavte image a spusťte kontejner.

docker build -t python-dev .
docker run -it python-dev

Uvnitř kontejneru můžete spustit příkaz python3 a spouštět Python skripty a vyvíjet aplikace.

Nastavení Node.js vývojového prostředí

Pro vývoj v Node.js použijte následující Dockerfile.

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

Postavte a spusťte kontejner.

docker build -t node-dev .
docker run -it node-dev

S tímto nastavením můžete použít příkaz node k vykonání JavaScript kódu a vývoji aplikací v kontrolovaném prostředí.

8. FAQ & Řešení problémů

Při používání Dockeru můžete narazit na různé problémy. Tato část poskytuje řešení běžných potíží a často kladených otázek.

Rozdíl mezi Dockerem a virtuálními stroji

  • Docker: Sdílí jádro hostitelského OS, což jej činí odlehčeným a umožňuje rychlé spouštění kontejnerů.
  • Virtuální stroje (VM): Každý VM má vlastní OS, spotřebovává více zdrojů a startuje déle.

Docker je efektivnější v využití zdrojů, což ho činí ideálním pro vývojová prostředí a automatizované nasazení.

Trvalé ukládání dat v Ubuntu kontejneru

Pro zachování dat i po zastavení kontejneru použijte mountování svazků.

docker run -v my_data:/data ubuntu

Svazek my_data ukládá data trvale, takže jsou přístupná i po odstranění kontejneru.

Časté chyby a řešení

1. Chyba permission denied

Pokud při spouštění Docker příkazů vidíte chybu permission denied, váš uživatel pravděpodobně není ve skupině docker.

Přidejte svého uživatele do skupiny docker následujícím příkazem:

sudo usermod -aG docker $USER

Po spuštění tohoto příkazu se odhlaste a znovu přihlaste, aby se změny projevily.

2. Chyba image not found

Pokud byl image odstraněn z Docker Hubu, zadejte jiný tag pro stažení platné verze.

docker pull ubuntu:22.04

Zadáním konkrétní verze zajistíte, že stáhnete funkční image.

侍エンジニア塾