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

Nejužitečnější [Docker] příkazy, o kterých by měl každý vědět [Příklady]

Tento kurz pokračuje v sérii článků souvisejících s Dockerem a pokrývá nejčastěji používané příkazy Dockeru. Začínáme stručným přehledem Dockeru a poté přejdeme k instalaci Dockeru na váš server. Dále vás provedeme všemi požadovanými příkazy pro správu kontejnerů, obrázků a svazků Docker. Staňte se profesionálním uživatelem Dockeru podle tohoto průvodce za 10 minut.

Co je Docker

Docker je otevřená platforma pro vývoj, odesílání a provoz aplikací. Je to de facto standard pro balení a sdílení aplikací – od desktopu po cloud.

K dosažení svého cíle používá Docker kontejnery.

Kontejner má následující vlastnosti:

  • Kontejner je balíček pro software a všechny požadované knihovny.
  • Jakmile je spuštěn, kontejner určí běhové prostředí pro vaši aplikaci.
  • Kontejner je lehčí než virtuální počítač, takže jej lze spustit mnohem rychleji.
  • Kontejner je distribuován ve formě obrázku, který se skládá z několika vrstev. Tyto vrstvy může znovu použít více kontejnerů.

Výše uvedené funkce vám umožňují:

  • Vytvářejte izolovaná prostředí pro nasazení.
  • Spusťte své aplikace během několika minut.

Docker vám pomůže zjednodušit a automatizovat každý krok procesu vývoje softwaru.

Zde jsou základní funkce Dockeru:

  • Docker má obrovskou komunitu.
  • Docker je jednoduchý a lehký způsob distribuce softwaru.
  • Docker má obří veřejné úložiště kontejnerů pro všechny možné účely.
  • Docker snižuje náklady na vývoj a provoz.
  • Konfigurace dockeru je přímočará a rychlá.
  • Docker poskytuje izolaci aplikací.
  • Obrázek Dockeru má vrstvy, které mají kontrolu verzí.
  • Docker automatizuje každý krok správy kontejnerů.

Docker můžete nainstalovat na operační systémy Linux, macOS a Windows.

Instalovat Docker

Tato část popisuje, jak nainstalovat balíček Docker CE (community edition) v operačním systému Linux.

Pokud používáte cloud AWS, navrhuji článek o automatické instalaci Dockeru do instance EC2 pomocí CloudFormation.

Instalovat Docker na Ubuntu/Debian

Ve výchozím nastavení výchozí úložiště Ubuntu nebo Debianu neobsahuje nejnovější verzi balíčku Docker CE. Budete tedy muset do svého systému přidat oficiální úložiště Docker CE.

Před přidáním úložiště nainstalujte některé požadované závislosti spuštěním následujícího příkazu:

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

Po instalaci všech závislostí importujte klíč Docker GPG pomocí následujícího příkazu;

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Dále přidejte oficiální úložiště Docker CE do zdrojového souboru APT pomocí následujícího příkazu:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"

Jakmile bude úložiště přidáno, budete muset aktualizovat mezipaměť úložiště. Můžete jej aktualizovat pomocí následujícího příkazu:

apt-get update -y

Jakmile bude vaše úložiště aktuální, spusťte následující příkaz k instalaci nejnovější verze Docker CE do vašeho systému.

apt-get install docker-ce -y

Výše uvedený příkaz nainstaluje balíček Docker CE do vašeho systému a automaticky spustí službu.

Nainstalovanou verzi Docker CE můžete ověřit spuštěním následujícího příkazu:

docker --version

V následujícím výstupu byste měli vidět verzi Docker:

Docker version 19.03.13, build 4484c46d9d

Pokud chcete odebrat balíček Docker ze systému, spusťte následující příkaz:

apt-get remove docker-ce

Instalovat Docker na CentOS/RHEL

Pro operační systém CentOS nebo RHEL budete muset do svého systému nainstalovat úložiště Docker CE. K přidání a povolení úložiště Docker CE můžete použít příkaz DNF, jak je znázorněno níže:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Po přidání úložiště Docker CE můžete spustit seznam všech dostupných verzí Docker CE spuštěním následujícího příkazu:

dnf list docker-ce --showduplicates | sort -r

Úplný seznam byste měli získat v následujícím výstupu:

docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        54 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                14 kB/s | 8.1 kB     00:00
CentOS-8 - Base                                 4.6 MB/s | 2.2 MB     00:00
CentOS-8 - AppStream                            4.7 MB/s | 5.8 MB     00:01
Available Packages

Dále nainstalujte nejnovější verzi Docker CE spuštěním následujícího příkazu:

dnf install docker-ce --nobest

Jakmile je Docker nainstalován, ověřte nainstalovanou verzi pomocí následujícího příkazu:

docker --version

Měli byste získat následující výstup:

Docker version 19.03.13, build 4484c46d9d

Chcete-li spustit službu Docker, spusťte následující příkaz:

systemctl start docker

Chcete-li zastavit službu Docker, spusťte následující příkaz:

systemctl stop docker

Chcete-li zobrazit další informace o Dockeru, můžete také spustit následující příkaz:

docker info

Měli byste vidět následující výstup:

Pokud chcete odebrat balíček Docker ze systému, spusťte následující příkaz:

dnf remove docker-ce

Správa kontejnerů pomocí Docker

 docker container příkaz se používá ke správě životního cyklu kontejneru. Pokud nemáte obrázek, ze kterého byste kontejner spustili, Docker přejde do registru a stáhne si jej.

Spustit kontejner Docker

Ke stažení bitové kopie z registru Docker a vytvoření kontejneru použijte následující syntaxi.

docker container run [your-image-name]

Spusťte například následující příkaz k vytvoření kontejneru webového serveru Apache:

docker container run httpd

Měli byste získat následující výstup:

Můžete použít možnost --rm s příkazem Docker run k odstranění kontejneru po jeho ukončení.

docker container run --rm httpd

Připojit k Docker Container Shell

Můžete použít možnost -it pomocí příkazu Docker run k vytvoření a spuštění kontejneru Apache a jeho připojení k interaktivnímu bash shellu.

docker container run -it httpd /bin/bash

Měli byste získat následující výstup:

Spustit kontejner Docker na pozadí

Nyní můžete v kontejneru spustit libovolný příkaz.

Můžete použít možnost -td pomocí příkazu Docker run k vytvoření a spuštění kontejneru Apache a jeho udržení v chodu.

docker container run -td httpd

Měli byste získat následující výstup:

Nastavit název kontejneru dockeru

Můžete použít možnost --name pomocí příkazu Docker run k přiřazení názvu kontejneru pomocí následující syntaxe:

docker container run --name [container-name] -td [image-name]

Vytvořte například nový kontejner z obrázku Apache a přiřaďte mu název apacheweb pomocí následujícího příkazu:

docker container run --name apacheweb -td httpd

Navázat kontejner Docker na konkrétní port

Pokud chcete přistupovat k procesu kontejneru externího počítače, můžete port kontejneru vystavit externí síti.

V tomto případě můžete použít možnost -p pomocí příkazu Docker pro zobrazení konkrétního portu, jak je znázorněno níže:

docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]

Vytvořte například kontejner webového serveru Apache a vystavte port kontejneru 80 portu 8080 pomocí následujícího příkazu:

docker container run -p 8080:80 --name apacheweb -dt httpd

Nyní můžete přistupovat k webovému serveru Apache spuštěnému uvnitř kontejneru pomocí adresy URL http://localhost:8080 .

Vypsat všechny kontejnery Docker

Chcete-li zobrazit seznam všech spuštěných a zastavených kontejnerů ve vašem systému, spusťte následující příkaz:

docker ps -a

Všechny kontejnery byste měli vidět v následujícím výstupu:

Chcete-li vypsat pouze spuštěné kontejnery ve vašem systému, spusťte následující příkaz:

docker ps

Kontejner můžete také vypsat pomocí následujícího příkazu:

docker container ls

Zobrazit statistiky kontejneru dockeru

Chcete-li zobrazit živé statistiky běžícího kontejneru (vytížení CPU a paměti, síť a diskové I/O) s názvem apacheweb , spusťte následující příkaz:

docker stats apacheweb

Měli byste vidět následující výstup:

Zobrazit všechny procesy kontejneru Docker

Chcete-li zobrazit seznam všech běžících procesů v běžícím kontejneru s názvem apacheweb , spusťte následující příkaz:

docker top apacheweb

Měli byste vidět následující výstup:

Zobrazit protokoly kontejneru Docker

Chcete-li zobrazit protokoly běžícího kontejneru s názvem apacheweb , spusťte následující příkaz:

docker logs apacheweb

Měli byste vidět následující výstup:

Spuštění, zastavení a pozastavení kontejneru Docker

Chcete-li zastavit spuštěný kontejner s názvem apacheweb , spusťte následující příkaz:

docker container stop apacheweb

Chcete-li spustit kontejner s názvem apacheweb , spusťte následující příkaz:

docker container start apacheweb

Chcete-li pozastavit kontejner s názvem apacheweb , spusťte následující příkaz:

docker container pause apacheweb

Restartovat nebo zabít kontejner Docker

Chcete-li restartovat spuštěný kontejner s názvem apacheweb , spusťte následující příkaz:

docker container restart apacheweb

Chcete-li zabít spuštěný kontejner s názvem apacheweb , spusťte následující příkaz:

docker container kill apacheweb

Připojit k již spuštěnému kontejneru dockeru

Chcete-li se připojit k běžícímu kontejneru, spusťte následující příkaz:

docker container exec -it apacheweb /bin/bash

Chcete-li spustit jakýkoli příkaz uvnitř spuštěného kontejneru, spusťte následující příkaz:

docker container exec -it apacheweb ls

Správa obrázků Docker

V této části vám ukážeme některé nejčastěji používané příkazy pro správu obrazu Docker.

Stáhnout obrázek Docker z registru

Chcete-li stáhnout nebo stáhnout bitovou kopii z registru Docker, použijte následující syntaxi:

docker pull [image-name]

Obraz webového serveru Nginx můžete například stáhnout z registru Docker pomocí následujícího příkazu:

docker pull nginx

Měli byste získat následující výstup:

Nahrát obrázek Dockeru do registru

Pokud chcete nahrát existující obrázek do registru Docker, použijte následující syntaxi:

docker push [image-name]

Přihlaste se do Docker The Registry

Nejprve se budete muset přihlásit do registru Docker pomocí následujícího příkazu:

docker login

Po přihlášení spusťte následující příkaz, abyste získali ID obrázku Nginx a označte obrázek následujícím příkazem:

docker images

Výstup:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MB

Přidat značku k obrázku dockeru

Dále označte obrázek následujícím příkazem:

docker tag f35646e83998 amaksimov/nginx

Kde:

  • f35646e83998 je ID obrázku, amaksimov je název registru Docker a nginx je název obrázku.

Dále odešlete obraz Nginx do registru Docker pomocí následujícího příkazu:

docker push amaksimov/nginx

Měli byste vidět následující výstup:

Vytvořit obrázek dockeru z běžícího kontejneru

Můžete také vytvořit obrázek z existujícího kontejneru pomocí následující syntaxe:

docker commit [container-name] [new-image-name]

Vytvořte například obrázek z kontejneru Apache a spusťte následující příkaz:

docker commit apacheweb apache-image

Chcete-li uložit stávající obrázek do archivu tar spuštěním následujícího příkazu:

docker save apache-image > apache-image.tar

Historie obrázku Docker

Historii libovolného obrazu Dockeru můžete vytisknout pomocí následujícího příkazu:

docker history apache-image

Měli byste získat následující výstup:

Smazat obrázek Docker

Jakýkoli obraz Dockeru můžete odstranit pomocí následující syntaxe:

docker rmi [image-name]

Pokud například chcete odstranit obrázek Apache, budete muset zastavit kontejner, který používá httpd obrázek:

docker container stop apacheweb
docker rm apacheweb

Nejprve musíme smazat apache-image obrázek:

docker rmi apache-image

Teprve poté odstraníme httpd obrázek pomocí následujícího příkazu:

docker rmi httpd

Postupem času mohou ručně vytvořené obrázky a kontejnery přinést na váš server nějaký nepořádek. Podívejte se prosím na naše časté dotazy ohledně Dockeru, kde zjistíte, jak vše vyčistit.

Správa svazků Docker

Když vytvoříte nový kontejner, uložíte některá data a kontejner smažete, data budou ztracena. V tomto případě můžete vytvořit svazek na hostitelském systému a spustit kontejner pomocí tohoto svazku. Po smazání kontejneru můžete načíst data ze svazku. Svazek Docker můžete také použít ke sdílení dat mezi více kontejnery.

V této části budeme některé nejčastěji používat docker volume příkazy s příklady.

Vytvořit svazek dockeru

Chcete-li vytvořit nový svazek s názvem datavolume pomocí následujícího příkazu:

docker volume create datavolume

Vypsat všechny svazky Docker

Chcete-li zobrazit vytvořený svazek, spusťte následující příkaz:

docker volume ls

Měli byste vidět následující výstup:

Chcete-li vytisknout další informace o svazku, spusťte následující příkaz:

docker inspect datavolume

Měli byste vidět následující výstup:

Připojit svazek ke kontejneru dockeru

Chcete-li vytvořit nový kontejner s názvem apacheweb a připojit datový svazek na hostitelském systému do adresáře /mnt kontejneru, spusťte následující příkaz:

docker run -it --name apacheweb1  --mount source=datavolume,destination=/mnt -td httpd

Vzdálený svazek dockeru

Chcete-li svazek odebrat, spusťte následující příkaz:

docker volume rm datavolume

Nejčastější dotazy k Dockeru

Jak odstranit nepoužívané obrázky Docker

Chcete-li odstranit všechny nepoužité obrazy dockeru, musíte spustit následující příkaz:

docker rmi $(docker images -a -q)

Jak odstranit všechny opuštěné kontejnery Docker

Všechny opuštěné kontejnery Docker lze odebrat spuštěním následujícího příkazu:

docker rm $(docker ps -a -f status=exited -q)

Jak zastavit a odebrat všechny kontejnery dockeru

Chcete-li zastavit všechny kontejnery Docker, musíte spustit:

docker stop $(docker ps -a -q)

Chcete-li odstranit všechny zastavené kontejnery Docker, musíte spustit:

docker rm $(docker ps -a -q)

Jak odstranit všechny nepoužívané obrázky, kontejnery, svazky, sítě Dockeru

Chcete-li odstranit všechny nepoužívané prostředky Dockeru, můžete použít následující příkaz:

docker system prune

Chcete-li úplně odstranit všechny prostředky Dockeru (použité i nevyužité), spusťte následující příkaz:

docker system prune -a

Shrnutí

Ve výše uvedené příručce jste se s příklady dozvěděli o nejčastěji používaných příkazech Dockeru a jejich použití. Doufám, že vám to pomůže při provádění každodenních úkolů.


Docker
  1. 30 věcí, které jste nevěděli o linuxovém jádře

  2. 10 příkazů, které by měl znát každý uživatel Linuxu

  3. 10 nejužitečnějších příkazů Ubuntu Linux

  1. Některé příkazy DOCKER

  2. Nejužitečnější příkazy Nginx v systému Linux

  3. Užitečné příklady příkazu Docker ps

  1. Příkazy Nginx, které byste měli vědět

  2. Příkazy Apache, které byste měli znát

  3. Proč bych se měl zajímat o Kubernetes, Docker a Container Orchestration?