Docker je nástroj, který se používá ke spouštění softwaru v kontejneru. Pro vývojáře a uživatele je to skvělý způsob, jak se méně starat o kompatibilitu s operačním systémem a závislostmi, protože obsažený software by měl fungovat identicky na jakémkoli systému.
Docker je k dispozici ke stažení a instalaci na Fedoře, stejně jako na většině ostatních distribucí Linuxu. Jeho instalace na Fedoru však může být trochu složitější, protože Red Hat nenabízí nativní podporu pro Docker ve svých distribucích. Místo toho Red Hat prosazuje podporu pro Podman, alternativu k Dockeru. Díky tomu je instalace Dockeru o něco těžší, ale na Fedoře je to stále možné.
V této příručce vám ukážeme, jak nainstalovat Docker na Fedoru a jak začít s instalací kontejnerového softwaru. Po instalaci Dockeru jej můžete použít k instalaci softwarových balíčků podobně, jako byste ke stažení aplikace použili správce balíčků vašeho distribuce. Rozdíl v používání Docker je v tom, že vše je více automatizované a kompatibilita a závislosti již nepředstavují potenciální problémy.
V tomto tutoriálu se naučíte:
- Jak nainstalovat Docker
- Jak spustit Docker a zajistit jeho automatické spouštění při spouštění
- Jak spustit Docker bez root
- Jak vyhledat obrázek Docker
- Jak nainstalovat image Docker
- Jak spustit obrázek Docker
- Jak monitorovat Docker pomocí různých příkazů
- Jak automaticky spustit kontejner Docker
Docker běžící obraz kontejneru na Fedora Linux
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Fedora Linux |
Software | Docker |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Nainstalujte Docker na Fedoru
Red Hat nám postavil do cesty několik překážek, takže nemůžeme nainstalovat Docker pomocí jednoduché dnf install
příkaz. Nejprve budeme muset do našeho systému přidat úložiště Docker a poté odinstalovat několik konfliktních balíčků, které jsou ve výchozím nastavení nainstalovány na Fedoře.
- Začněte instalací
dnf-plugins-core
balíček, v případě, že ještě není ve vašem systému. To vám umožní spravovat vaše dnf úložiště a přidat do nich oficiální repozitář Docker.$ sudo dnf -y install dnf-plugins-core
- Poté přidejte úložiště Docker do svého systému pomocí následujícího příkazu.
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
- Než začneme instalovat Docker, musíme odstranit
podman
abuildah
balíčky z našeho systému, protože jsou v konfliktu s Dockerem a zabrání jeho instalaci.$ sudo dnf remove podman buildah
- Nakonec můžeme nainstalovat tři balíčky Docker, které budeme potřebovat, provedením následujícího příkazu.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
- Po dokončení instalace spusťte službu Docker a případně povolte její spuštění při každém restartu systému:
$ sudo systemctl start docker.service $ sudo systemctl start containerd.service $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
- Můžete ověřit, že je Docker nainstalován, a získat nějaké informace o aktuální verzi zadáním tohoto příkazu:
$ sudo docker version
- Existuje také rychlý a snadný způsob, jak zjistit, kolik kontejnerů Docker aktuálně běží, a zobrazit některé z nakonfigurovaných možností Dockeru zadáním:
$ sudo docker info
Výstup příkazu info docker zobrazující jeho konfiguraci
Výstup příkazu verze docker
Spustit Docker bez root
Ve výchozím nastavení budete muset použít sudo
nebo se přihlaste do rootu, kdykoli budete chtít spustit příkaz Docker. Tento další krok je volitelný, ale pokud dáváte přednost možnosti spouštět Docker jako aktuální uživatel, přidejte svůj účet do skupiny dockerů pomocí tohoto příkazu:
$ sudo usermod -aG docker $USER
Aby se tyto změny projevily, budete muset restartovat systém.
$ reboot
Vyhledávání obrázku Docker
Nyní jste připraveni nainstalovat obrazy pomocí Dockeru. Pokud již znáte název obrazu, který chcete nainstalovat, můžete přejít k další části. Pokud potřebujete v Dockeru vyhledat požadovaný software, můžete použít následující syntaxi příkazu:
$ docker search [name]
Zkusme například vyhledat nginx, což je populární software webového serveru.
$ docker search nginxDocker může vyhledat všechny dostupné obrázky kontejnerů
Jak můžete vidět, existuje jeden oficiální obrázek pro nginx (označený OFFICIAL
sloupec) jednoduše nazvaný nginx
. K dispozici jsou také další verze a budete si muset přečíst jejich popis, abyste viděli, co dělají jinak než na oficiálním obrázku.
Instalace obrazu Docker
Jakmile budete vědět, který obrázek chcete nainstalovat, můžete pomocí následujícího příkazu dát Dockerovi pokyn ke stažení požadovaného softwaru. Jako příklad nainstalujeme hello-world
balíček, který lze použít k zajištění toho, aby Docker mohl úspěšně stahovat a spouštět obrázky.
$ docker pull hello-world
Docker stahuje obrázek kontejneru
Výstup na snímku obrazovky výše naznačuje, že Docker byl schopen najít a stáhnout obrázek, který jsme zadali.
Spuštění obrazu Docker
Nyní, když je obrázek stažen, spusťte jej následujícím příkazem:
$ docker run hello-worldDockeru se podařilo úspěšně spustit obrázek hello-world
Monitoring Docker
Docker nám poskytuje spoustu možností, jak zjistit, co se děje s našimi obrazy, kolik systémových prostředků využívají atd. Následující příkazy jsou užitečné pro monitorování Dockeru a našich nainstalovaných obrazů.
Chcete-li zjistit, které kontejnery Docker běží, a zkontrolovat jejich aktuální stav, zadejte:
$ docker container lsPříkaz docker container ls zobrazuje aktuálně spuštěné kontejnery
Chcete-li zobrazit seznam všech nainstalovaných obrazů Docker, zadejte:
$ docker images
Příkaz docker images ukazuje, které obrázky jsou aktuálně nainstalovány v Docker
Chcete-li zobrazit aktuální využití CPU, RAM a sítě běžícími bitovými kopiemi, napište:
$ docker statsPodívejte se na aktuální systém využití obrazů Docker pomocí příkazu docker stats
Chcete-li zobrazit konfiguraci sítě Docker, zadejte:
$ docker network lsPodívejte se na aktuálně nakonfigurované sítě v Dockeru s docker network ls
Automaticky spustit kontejner
Již jsme viděli, jak zajistit, aby se služba Docker automaticky spustila při spuštění počítače. V případě, že jste tento krok přeskočili, zde je příkaz znovu.
$ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
Můžeme také ovládat služby Docker, aby se spouštěly automaticky. Zde je několik příkazů pro ovládání jejich chování. Použijeme nginx
jako náš vzorový software v těchto příkazech.
- Chcete-li spustit nový kontejner a nakonfigurovat jej tak, aby se automaticky restartoval, pokud nebyl zastaven nebo restartován Docker, spusťte následující příkaz.
$ docker run -d --restart unless-stopped nginx
- Pokud je kontejner již spuštěn, použijte tento příkaz, abyste se ujistili, že se automaticky restartuje.
$ docker update --restart unless-stopped nginx
- Můžeme také zajistit, aby se všechny kontejnery restartovaly automaticky, pokud nejsou výslovně zastaveny, pomocí následujícího příkazu.
$ docker update --restart unless-stopped $(docker ps -q)
- Chcete-li kontejner vždy restartovat, i když byl ručně zastaven, použijte
always
možnost namístounless stopped
.$ docker update --restart always nginx
- Můžete také použít
on-failure
možnost povolit automatické restartování kontejnerů pouze v případě, že dojde k chybě.$ docker update --restart on-failure nginx
- Chcete-li nakonfigurovat kontejner zpět na výchozí nastavení, což znamená, že nedochází k automatickému restartování, použijte
no
možnost.$ docker update --restart no nginx
Odstraňování problémů
Pokud narazíte na problémy s Dockerem, včetně chyb oprávnění nebo „Nelze se připojit k démonu Docker“, vývojáři Dockeru mají praktický skript, který můžete spustit a zkontrolovat spoustu běžných problémů. Zde je návod, jak jej stáhnout a spustit.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh $ bash ./check-config.shSpuštěním skriptu Docker check-config se ukáže, zda je v našem systému něco špatně nakonfigurováno
Úvahy na závěr
Přestože RHEL a v rozšíření Fedora nativně nepodporuje Docker, je stále možné jej uvést do provozu, jak jsme viděli v této příručce. Nativní nástroje RHEL jako podman a buildah jsou kompatibilní s Dockerem, ale ke spuštění nepotřebují architekturu server/klient. Používání nativních nástrojů, kde je to možné, je vždy doporučeným způsobem, ale z toho či onoho důvodu možná budete chtít nainstalovat původní Docker.