Docker je nástroj, který vám umožňuje vytvářet, nasazovat a spravovat lehké, samostatné balíčky zvané kontejnery . Tyto kontejnery mají nezbytný kód, knihovny, runtime, systémová nastavení a závislosti potřebné ke spuštění aplikace.
Tato příručka popisuje instalaci Docker Engine na různé distribuce Linuxu pomocí YUM nebo DNF správce balíčků, včetně CentOS a Fedory, a také získávání a spouštění obrazů Docker.
Než začnete
-
Ujistěte se, že máte přístup z příkazového řádku k serveru Linux s podporovanou distribucí Linuxu. Pokud ne, vytvořte nový Linode podle příruček Začínáme a Nastavení a zabezpečení výpočetní instance.
Poznámka Tato příručka je napsána pro uživatele bez oprávnění root. Příkazy, které vyžadují zvýšená oprávnění, mají předponu
sudo
. Pokud neznátesudo
naleznete v příručce Uživatelé a skupiny. -
Projděte si následující příručky Docker, abyste lépe porozuměli Dockeru, jeho výhodám a tomu, kdy jej používat.
- Úvod do Dockeru
- Kdy a proč používat Docker
Instalace Docker Engine
Docker Engine je základní kontejnerizační software používaný při nasazování kontejnerů Docker. Následující pokyny nainstalují Docker na CentOS a Fedoru pomocí YUM správce balíčků.
Podporované distribuce: CentOS 7, CentOS 8 (včetně dalších derivátů RHEL 8, jako jsou AlmaLinux a RockyLinux) a Fedora 32 (a novější)
Poznámka Zatímco YUM správce balíčků byl nahrazen DNF na CentOS 8 a Fedoře, yum
příkaz je stále přítomen jako symbolický odkaz na DNF. Tyto pokyny jako takové stále fungují tak, jak mají.
-
Ujistěte se, že Docker není aktuálně nainstalován. Výstup indikující, že některý z balíčků nebyl nalezen, lze bezpečně ignorovat.
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
Nainstalujte yum-utils balíček, který obsahuje
yum-config-manager
. Tím se automaticky nainstalujednf-plugins-core
při použití DNF.sudo yum install yum-utils
-
Přidejte úložiště dockeru pomocí
yum-config-manager
. To se automaticky namapuje nadnf config-manager
příkaz při použití DNF. V následujícím příkazu nahraďte[url]
s adresou URL úložiště pro vaši distribuci:sudo yum-config-manager --add-repo [url]
- RHEL/CentOS a odvozeniny:
https://download.docker.com/linux/centos/docker-ce.repo
- Fedora 32 a novější:
https://download.docker.com/linux/fedora/docker-ce.repo
- RHEL/CentOS a odvozeniny:
-
Nainstalujte Docker Engine a další požadované balíčky:
sudo yum install docker-ce docker-ce-cli containerd.io
Během tohoto kroku můžete být vyzváni k přijetí klíče GPG. Otisk by měl být
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
. Ověřte tyto údaje a zadejte y přijmout.
Další pokyny k instalaci pro tyto distribuce lze nalézt v dokumentaci Docker:
- Nainstalujte Docker Engine na CentOS
- Nainstalujte Docker Engine na Fedoru
Spuštění a testování Dockeru
Po instalaci Docker Engine spusťte Docker a ověřte, že vše funguje spuštěním testovacího obrazu.
-
Ujistěte se, že server Docker běží.
sudo systemctl start docker
-
Volitelně nakonfigurujte Docker tak, aby se spustil při spuštění serveru. Toto je doporučeno, pokud máte v úmyslu spustit produkční aplikaci v rámci této instalace Dockeru.
sudo systemctl enable docker sudo systemctl enable containerd
-
Ověřte, zda je Docker správně nainstalován, spuštěním obrazu „hello-world“.
sudo docker run hello-world
Pokud bude úspěšný, Docker by si měl stáhnout a spustit obrázek hello-world a vydat zprávu o úspěchu. Kromě jiného textu by výstup měl obsahovat zprávu podobnou následujícímu:
Hello from Docker! This message shows that your installation appears to be working correctly.
Správa dockeru s uživatelem bez oprávnění root
Ve výchozím nastavení sudo
je vyžadována pro spouštění příkazů Dockeru, ale existuje nová skupina nazvaná docker , byl vytvořen během instalace. Když se démon Docker spustí, otevře Unixový soket pro docker členové skupiny.
Než budete pokračovat, ujistěte se, že máte omezený uživatelský účet, který nemá patří do skupiny sudo. Pokud jste si ještě nevytvořili omezený uživatelský účet, přečtěte si pokyny v příručkách Nastavení a zabezpečení výpočetní instance nebo Uživatelé a skupiny Linuxu.
-
Zadejte níže uvedený příkaz a přidejte uživatele do dockeru skupina, nahrazující [uživatel] s názvem vašeho omezeného uživatelského účtu.
sudo usermod -aG docker [user]
-
Přihlaste se do systému jako omezený uživatel.
-
Ověřte, že omezený uživatel může spustit
docker
příkazy bezsudo
opětovným spuštěním obrázku „hello-world“.docker run hello-world
Výstup by měl mít podobnou zprávu o úspěchu jako předchozí výstup.
Pozor Docker group uděluje podobná oprávnění jako má uživatel root. Další informace o tom, jak to může ovlivnit zabezpečení systému, najdete v průvodci Docker Daemon Attack Surface v dokumentaci Dockeru. Chcete-li spustit démona Docker bez použití oprávnění root, postupujte podle pokynů v části Spusťte démona Docker jako uživatel bez oprávnění root (režim bez root).
Řešení chyb s načítáním konfiguračních souborů
Pokud uživatel spustil sudo docker
příkazy před připojením ke skupině, může se jim zobrazit chyba při načítání konfiguračního souboru, například takto:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Problém je v tom, že adresář .docker v jejich domovském adresáři (~/.docker) byl vytvořen s oprávněními udělenými sudo
.
Existují dvě možné opravy:
-
Odstraňte
.docker
adresář z jejich domovského adresáře. Docker jej automaticky znovu vytvoří, ale veškerá vlastní nastavení budou ztracena. -
Změňte oprávnění na
.docker
adresář pomocí příkazů:sudo chown example_user:example_user /home/example_user/.docker -R sudo chmod g+rwx "/home/example_user/.docker" -R
Použití obrázků Docker k nasazení kontejnerů
Obrázky dockeru jsou šablony, které obsahují pokyny a specifikace pro vytvoření kontejneru. Chcete-li použít Docker, musíte nejprve získat obrázek nebo vytvořit svůj vlastní vytvořením souboru docker. Další informace najdete v tématu Úvod do Dockeru.
Výpis obrázků
Chcete-li zobrazit seznam všech obrazů ve vašem systému, spusťte následující příkaz. Výsledkem by měl být hello-world obrázek, který byl použit v předchozím kroku, a také všechny další obrázky, které jste již získali.
docker images
Nalezení obrázku
Obrázky jsou uloženy v registrech Docker, jako je Docker Hub (oficiální registr Dockeru). Můžete procházet obrázky na tomto webu nebo pomocí následujícího příkazu prohledávat registr Docker. V následujícím příkazu nahraďte [keyword]
s klíčovými slovy, která chcete vyhledat, například nginx nebo apache .
docker search [keyword]
Získání obrázku
Jakmile najdete obrázek, stáhněte si jej na svůj server. V následujícím příkazu nahraďte [image]
s názvem obrázku, který chcete použít.
docker pull [image]
Chcete-li například stáhnout oficiální obrázek nginx, spusťte:docker pull nginx
.
Spuštění obrázku
Dále vytvořte kontejner založený na obrázku pomocí docker run
příkaz. Znovu nahraďte [image]
s názvem obrázku, který chcete použít.
docker run [image]
Pokud obrázek ještě nebyl stažen a je dostupný v registru Docker, bude automaticky stažen na váš server.
Správa kontejnerů Docker
Výpis kontejnerů
Chcete-li zobrazit seznam všech aktivních (a neaktivních) kontejnerů Docker spuštěných ve vašem systému, spusťte následující příkaz:
docker ps -a
Výstup by měl vypadat následovně. Tento ukázkový výstup ukazuje hello-world
kontejner.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5039168328a5 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago magical_varahamihira
Spuštění kontejneru
Spusťte kontejner Docker pomocí následujícího příkazu, který nahradí [ID]
s ID kontejneru odpovídajícím kontejneru, který chcete spustit:
docker start [ID]
Zastavení kontejneru
Zastavte kontejner Docker pomocí následujícího příkazu, který nahradí [ID]
s ID kontejneru odpovídajícím kontejneru, který chcete zastavit:
docker stop [ID]
Některé obrázky (například hello-world
image) se po spuštění automaticky zastaví. Mnoho dalších kontejnerů však pokračuje v běhu, dokud nedostanete explicitní příkaz k zastavení, a možná budete chtít spouštět tyto kontejnery na pozadí. V těchto případech se tento příkaz může hodit.
Odebrání kontejneru
Odeberte kontejner Docker pomocí následujícího příkazu, který nahradí [ID]
s ID kontejneru odpovídajícím kontejneru, který chcete odstranit:
docker rm [ID]
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Webové stránky pro Docker
- Dokumentace pro Docker
- Web pro kontejnery