GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Instalace a používání Dockeru na CentOS a Fedoře

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

  1. 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áte sudo naleznete v příručce Uživatelé a skupiny.
  2. 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í.
  1. 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
    
  2. Nainstalujte yum-utils balíček, který obsahuje yum-config-manager . Tím se automaticky nainstaluje dnf-plugins-core při použití DNF.

    sudo yum install yum-utils
    
  3. Přidejte úložiště dockeru pomocí yum-config-manager . To se automaticky namapuje na dnf 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
  4. 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.

  1. Ujistěte se, že server Docker běží.

    sudo systemctl start docker
    
  2. 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
    
  3. 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.

  1. 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]
    
  2. Přihlaste se do systému jako omezený uživatel.

  3. Ověřte, že omezený uživatel může spustit docker příkazy bez sudo 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:

  1. Odstraňte .docker adresář z jejich domovského adresáře. Docker jej automaticky znovu vytvoří, ale veškerá vlastní nastavení budou ztracena.

  2. 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

Docker
  1. Instalace a konfigurace php 7x na Centos 8

  2. Instalace a nastavení Grafana v linuxu

  3. Jak nainstalovat Docker na Fedoru 32 nebo 31 (a alternativy)

  1. Jak nainstalovat a používat Docker Compose na CentOS

  2. Instalace Dockeru na CentOS 6.6

  3. Instalace a používání XeTeXu

  1. Instalace JAVA 8 JDK na CentOS, RedHat a Fedora

  2. Instalace PostgreSQL a phpPgAdmin v CentOS

  3. Jak nainstalovat Docker na CentOS