Jak používat Docker na Ubuntu: Kompletní průvodce instalací, obrazy, Dockerfile a optimalizací

.

目次

1. Úvod

Co je Docker?

Docker je platforma, která využívá virtualizační technologii 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 OS, což umožňuje rychlejší start a nižší spotřebu zdrojů.

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

Ubuntu je jednou z linuxových distribucí s vysokou kompatibilitou s Dockerem. Hlavní důvody zahrnují:

  • Oficiální podpora : Docker oficiálně podporuje Ubuntu, což umožňuje snadnou instalaci přes oficiální repozitář.
  • Stabilní správa balíčků : Správce balíčků APT v Ubuntu usnadňuje správu verzí.
  • Rozsáhlá komunita : Ubuntu má velkou globální uživatelskou základnu, takže řešení problémů je jednodušší, když nastanou potíže.

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

Tento průvodce krok za krokem vysvětluje následující témata:

  1. Jak nainstalovat Docker na Ubuntu
  2. Základní operace s Docker obrazy
  3. Vytváření vlastních obrazů pomocí Dockerfile
  4. Nastavení japonské locale v kontejneru Ubuntu
  5. Optimalizace a minimalizace Docker obrazů
  6. Vývoj aplikací uvnitř kontejnerů Ubuntu
  7. Běžné chyby a jejich řešení

Obsah je užitečný jak pro začátečníky, tak pro pokročilé uživatele, takže jej můžete libovolně využívat v jakémkoli stádiu.

2. Instalace Dockeru na Ubuntu

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

V Ubuntu můžete Docker snadno nainstalovat pomocí oficiálního repozitáře. Postupujte podle níže uvedených kroků a připravte si prostředí.

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

Ubuntu může obsahovat balíček nazvaný docker.io, který může být starší verze. Před instalací nejnovějšího Dockeru jej odstraňte.

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

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

Nejprve nainstalujte 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 Docker repozitáře

Přidejte oficiální GPG klíč Dockeru a nakonfigurujte 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

Po přidání repozitáře nainstalujte Docker.

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

5. Ověření instalace

Zkontrolujte, zda je Docker nainstalován správně, a 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 povolte automatické spouštění při startu systému.

sudo systemctl start docker
sudo systemctl enable docker

2. Povolení ne‑root uživatelům spouštět Docker

Ve výchozím nastavení Docker může spouštět jen root. Umožněte běžným uživatelům spouštět Docker příkazy.

sudo usermod -aG docker $USER

Odhlaste se a znovu se přihlaste, aby se změny projevily.

3. Otestování fungování Dockeru

Spusťte kontejner hello-world pod běžným uživatelským účtem.

docker run hello-world

Pokud výstup obsahuje „Hello from Docker!“, instalace proběhla úspěšně.

3. Základní operace s Docker obrazy

Co je Docker obraz?

Docker obraz funguje jako šablona pro vytváření kontejnerů. Pomocí obrazu Docker založeného na Ubuntu můžete rychle spustit Ubuntu prostředí.

Stahování Ubuntu obrazů z Docker Hub

Docker Hub poskytuje řadu oficiálních Docker obrazů. Pro stažení Ubuntu obrazu spusťte:

docker pull ubuntu

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

Použijte stažený Ubuntu obraz k spuštění kontejneru:

docker run -it ubuntu bash

Toto otevře shell uvnitř kontejneru Ubuntu, což vám umožní v něm pracovat.

Seznam kontejnerů

Zobrazit spuštěné kontejnery:

docker ps

Zobrazit všechny kontejnery, včetně zastavených:

docker ps -a

Zastavení a odstranění kontejnerů

Zastavit spuštěný kontejner:

docker stop [container ID or name]

Odstranit nepotřebný kontejner:

docker rm [container ID or name]

Správa Docker obrázků

Vypsat stažené Docker obrázky:

docker images

Odstranit obrázek:

docker rmi [image ID]

4. Vytváření vlastních obrázků s Dockerfile

Co je Dockerfile?

Dockerfile je konfigurační soubor používaný k sestavení Docker obrázků. Na základě instrukcí zapsaných v Dockerfile můžete vytvořit přizpůsobené Docker obrázky. To vám umožňuje sjednotit vývojová prostředí nebo vytvořit obrázky, které obsahují požadované balíčky.

Základní syntaxe Dockerfile

Dockerfile obvykle obsahuje následující příkazy:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefault command executed when the container starts
ENTRYPOINTDefines the entry point of the container

Vytvoření vlastního obrázku na bázi Ubuntu

Postupujte podle následujících kroků k vytvoření vlastního Docker obrázku na bázi Ubuntu.

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

Nejprve vytvořte nový adresář projektu a přesuňte se do něj.

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

2. Vytvoření Dockerfile

Vytvořte soubor Dockerfile uvnitř adresáře a zapište do něj následující obsah:

# Base Ubuntu official image
FROM ubuntu:latest

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

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

# Set working directory
WORKDIR /workspace

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

3. Sestavení Docker obrázku

Sestavte vlastní obrázek z vašeho Dockerfile:

docker build -t my-ubuntu-image .

Možnost -t přiřadí název obrázku.

4. Ověření obrázku

Zkontrolujte nově sestavený obrázek:

docker images

5. Spuštění kontejneru

Spusťte kontejner z vlastního obrázku:

docker run -it my-ubuntu-image

Tento obrázek obsahuje nástroje jako curl a vim.

5. Nastavení japonského prostředí v kontejnerech Ubuntu

Výchozí obrázek Ubuntu používá anglické prostředí. Pro použití japonštiny je vyžadována další konfigurace.

Nastavení japonské lokalizace

Chcete-li povolit japonské zobrazení a vstup v kontejneru Ubuntu, nainstalujte japonskou lokalizaci.

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

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

2. Konfigurace lokalizace

Vygenerujte a aplikujte lokalizaci:

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

3. Aplikování nastavení

export LANG=ja_JP.UTF-8

Nastavení japonského vstupu

Pro zadávání japonských znaků v terminálu nainstalujte ibus-mozc:

apt install -y ibus-mozc

Pokud používáte GUI aplikace, 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 použijte X server na hostitelské mašině.

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 minimalizace Docker obrázků

Docker obrázky lze optimalizovat pro zlepšení rychlosti spuštění kontejneru a snížení spotřeby úložiště. Zde jsou několik technik pro vytváření lehkých obrázků.

Jak vytvořit lehký obrázek na bázi Ubuntu

Výchozí obrázek ubuntu:latest je relativně velký. Použití lehčí varianty jako ubuntu:minimal pomůže snížit velikost kontejneru.

FROM ubuntu:minimal

Další možností je použít Alpine Linux, který je výrazně menší než Ubuntu.

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

Použití Alpine může snížit velikost obrázku o několik set megabajtů.

Snížení velikosti obrázku odstraněním nepotřebných souborů

Velikost obrazu můžete snížit odstraněním nepotřebných souborů mezipaměti vytvořených příkazem apt-get.

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

Konkrétně příkaz rm -rf /var/lib/apt/lists/* odstraňuje seznamy balíčků a nepoužívaná data.

Použití Multi‑Stage Buildů

Multi‑stage buildy vám umožňují používat nástroje pouze během procesu sestavení, přičemž finální obraz zůstává odlehčený.

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

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

Tím se vyhnete zahrnutí vývojových nástrojů do finálního obrazu, což vede k mnohem menší stopě.

7. Praktický příklad: vývoj aplikací v Ubuntu kontejnerech

Tato sekce představuje, jak nastavit vývojová prostředí uvnitř Ubuntu kontejnerů.

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

Vytvořte následující Dockerfile pro nastavení vývojového prostředí pro Python v Ubuntu kontejneru:

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

Sestavte obraz a spusťte kontejner:

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

Toto prostředí vám umožní používat příkaz python3 pro vývoj a testování skriptů.

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

Pro nastavení vývojového prostředí pro Node.js použijte následující Dockerfile:

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

Sestavte a spusťte kontejner:

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

Toto prostředí umožňuje spouštění JavaScriptu a vývoj aplikací pomocí příkazu node.

8. Často kladené otázky a řešení problémů

Používání Dockeru může vést k různým problémům. Níže jsou běžné otázky a typická řešení.

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

  • Docker: Sdílí jádro hostitelského OS, což jej činí odlehčeným s rychlým startem kontejneru.
  • Virtuální stroje (VM): Každý VM obsahuje vlastní OS, což vede k vyšší spotřebě zdrojů a pomalejšímu startu.

Docker vyniká v optimalizaci zdrojů a hodí se pro vývojová prostředí a automatizované nasazení.

Zachování dat v Ubuntu kontejnerech

Pro zachování dat i po zastavení kontejneru použijte volume mounts:

docker run -v my_data:/data ubuntu

I když je kontejner smazán, data uložená ve svazku my_data lze znovu použít.

Časté chyby a řešení

1. Chyba permission denied

Pokud při pokusu spustit Docker vidíte permission denied, může váš uživatel nepatřit do skupiny docker.

Přidejte uživatele do skupiny Docker:

sudo usermod -aG docker $USER

Odhlaste se a znovu přihlaste, aby se změna projevila.

2. Chyba image not found

Pokud byl obraz odstraněn z Docker Hubu, při stahování uveďte novější tag:

docker pull ubuntu:22.04

Určení explicitní verze zajišťuje, že bude stažen správný obraz.