Kontejner Docker je v současnosti jednou z nejvíce se rozvíjejících technologií. Docker kontejnery se obecně používají na platformě CI/CD (Continuous Integration/Continuous Deployment). Kontejnery jsou lehké virtuální počítače (virtuální stroje), které využívají základní zdroje hypervizorů, jako jsou (RAM, CPU, HDD a jádro).
Příkaz Docker se používá ke správě kontejnerů a obrázků z příkazového řádku. V tomto článku se budeme zabývat 20 užitečnými příklady příkazů docker v Linuxu. Předpokládám, že docker je již nainstalován ve vašem systému Linux a váš běžný uživatel je přidán do skupiny dockerů.
1) Ověřte verzi Docker
Prvním důležitým úkolem při práci na kontejnerech dockeru je znát verzi dockeru. Verzi zjistíte spuštěním příkazu docker
$ docker --version Docker version 20.10.12, build e91ed57 $
2) Zobrazení informací o celém systému
Příkaz „docker info“ se používá k zobrazení informací o celém systému, jako je kořenový adresář Docker, verze operačního systému, verze jádra, verze Dockeru, RAM, CPU a registr Docker.
$ docker info
3) Prohledejte obrázky Docker
Pomocí příkazu „docker search“ můžeme prohledávat obrázky kontejneru dockeru z registru docker hub. Předpokládejme, že chci prohledat nejnovější obrázky dockeru nginx.
$ docker search nginx
Výstup výše uvedeného příkazu bude vypadat následovně,
4) Stáhnout obrázky kontejnerů Docker
Příkaz Docker pull se používá ke stažení obrázků kontejneru z registru docker hub.
Syntaxe:
$ docker pull
Příkaz Docker pull se vždy snaží stáhnout nejnovější verzi obrázku, i když můžeme určit konkrétní verzi obrázku. Předpokládejme, že chci stáhnout nejnovější verzi obrazu rsyslog
$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx 5eb5b503b376: Pull complete 1ae07ab881bd: Pull complete 78091884b7be: Pull complete 091c283c6a66: Pull complete 55de5851019b: Pull complete b559bad762be: Pull complete Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest $
Stažení konkrétního obrázku na základě verze, předpokládejme, že chceme stáhnout obrázek dockeru Ubuntu:20:04, spustit
$ docker pull ubuntu:20.04 20.04: Pulling from library/ubuntu 08c01a0ec47e: Pull complete Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04 $
5) Zobrazit stažené obrázky kontejnerů Docker
Protože víme, že kořenový adresář dockeru je „/var/lib/docker“, takže kdykoli stáhneme obrázky pomocí příkazu docker pull, všechny obrázky se uloží do kořenového adresáře dockeru.
Chcete-li zobrazit všechny stažené obrazy kontejneru dockeru, spusťte
$ docker image ls or $ docker images
Výstup
6) Spusťte Docker Container
Kontejnery se spouštějí příkazem ‚docker run‘, předpokládejme, že chci spustit kontejner z obrazu nginx.
$ docker run -it -p 9000:80 --name=myapp nginx
výstup
Výše spustí kontejner s názvem „myapp“ a také nastavíme pravidlo pat takovým způsobem, že pokud jakýkoli požadavek přijde na port 9000 na hostiteli dockeru, bude tento požadavek přesměrován do kontejneru myapp na portu 80. Pokud jste si všimli, že konzoli získáme přímo po provedení příkazu. Chcete-li kontejner zastavit / vypnout, zadejte příkaz exit a chcete-li se z kontejneru dostat, aniž byste jej zastavili, zadejte „ctrl+p+q“
Nyní můžete přistupovat k aplikaci nginx na portu 9000 pomocí příkazu curl,
$ curl http://<Docker-Host-IP-Address>:9000/
7) Spusťte kontejner v režimu odpojení
Kontejner můžeme spustit v režimu odpojení pomocí volby -d v příkazu „spuštění dockeru“. Režim odpojení zde znamená, že po provedení příkazu spuštění dockeru se zobrazí příkazový řádek. Příklad je uveden níže,
$ docker run -it -d -p 9080:80 --name=myapp2 httpd f7dc2ece64708a9de5e53f341b0c7d17ac9189fb7c99079ad8744348bc5a6faa $
8) Zobrazit všechny běžící kontejnery
Příkaz Run ‚docker ps‘ se používá k zobrazení všech spuštěných kontejnerů
$ docker ps
Chcete-li zobrazit všechny spuštěné spolu s ukončenými nebo zastavenými kontejnery, spusťte
$ docker ps -a
9) Přístup ke konzole kontejneru
Chcete-li získat přístup ke konzole kontejneru, spusťte příkaz „docker exec“
[email protected]:~$ docker exec -it myapp /bin/bash [email protected]:/#
Chcete-li opustit konzolu, zadejte příkaz exit
10) Spuštění, zastavení, restartování a zabití kontejnerů
Stejně jako virtuální stroje můžeme spouštět, zastavovat a restartovat kontejnery dockerů.
Použijte níže uvedený příkaz k zastavení běžícího kontejneru
$ docker stop myapp2 myapp2 $
Místo názvu kontejneru můžeme také použít id kontejneru
Ke spuštění kontejneru použijte níže uvedený příkaz.
$ docker start myapp2 myapp2 $
Pomocí níže uvedeného příkazu restartujte kontejner.
$ docker restart myapp2 myapp2 $
Stejně jako proces můžeme také zabít kontejner, použijte příkaz níže k zabití kontejneru.
[email protected]:~$ docker kill myapp2 myapp2 [email protected]:~$
11) Odebrat kontejner
Docker Container se odstraní nebo odstraní pomocí příkazu „docker rm“. ‘docker rm’ bude fungovat, pouze když je docker zastaven/vypnut.
Syntaxe:
$ docker rm {container_name_OR_container_id}
$ docker stop test-app test-app $ docker rm test-app test-app $
Chcete-li násilně odstranit běžící kontejner, použijte volbu „-f“ v příkazu docker rm. Příklad je uveden níže
$ docker rm -f nginx-app
12) Odebrat obrázky kontejneru Docker
Stejně jako kontejnery můžeme také odstranit nebo odstranit obrázky dockeru. Příkaz „docker rmi“ se používá k odstranění obrázků kontejneru docker.
Předpokládejme, že chceme smazat docker image ‚Ubuntu:20.04‘, spusťte
$ docker rmi ubuntu:20.04 Untagged: ubuntu:20.04 Untagged: [email protected]:669e010b58baf5beb2836b253c14f7c07a4dc93f474be Deleted: sha256:54c9d81cbb440897908abdcaa98674db831e40a66f704f Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f629593310578d2 $
Ve výše uvedeném příkazu můžeme místo názvu obrázku použít id obrázku
$ docker rmi 54c9d81cbb44
13) Uložit a načíst obrázek kontejneru dockeru
Chcete-li uložit obrázek dockeru do souboru tar, použijte příkaz „docker save“, příklad je uveden níže:
$ docker save nginx -o mynginx.tar $ ls -l mynginx.tar -rw------- 1 sysops sysops 145931776 Feb 5 10:30 mynginx.tar $
Chcete-li načíst obrázek dockeru ze souboru tar, použijte příkaz ‚docker load‘
$ docker load -i mynginx.tar Loaded image: nginx:latest $
Poznámka:Tyto příkazy jsou užitečné, když chceme přenést obraz dockeru z jednoho hostitele Dockeru do druhého.
14) Zkopírujte soubory/složku do kontejneru
Soubory nebo složky můžeme zkopírovat do kontejneru z hostitele dockeru pomocí příkazu „docker cp“. V následujícím zkopírujeme složku „mycode“ do kontejneru myapp
$ docker cp mycode myapp:/tmp
15) Zobrazit historii obrázku Docker
Historie obrázku Dockeru zde znamená, jaké příkazy se provádějí při vytváření obrázků dockeru, tyto příkazy můžeme zobrazit pomocí ‚historie dockeru‘
Syntaxe:#
$ historie dockeru {Image_Name_OR_Image_id}
$ docker history nginx
16) Zobrazení protokolů z kontejneru
Můžeme prohlížet protokoly z kontejnerů, aniž bychom se do nich museli přihlašovat, příkaz Spustit ‚docker logs‘
Syntaxe:
$ docker logs {container_name_or_container_id}
$ docker logs myapp
Chcete-li zobrazit živé protokoly, použijte volbu „-f“ v příkazu docker logs
$ docker logs -f myapp
Chcete-li zobrazit posledních 10 protokolů z kontejneru, spusťte
$ docker logs --tail 10 myapp
17) Zobrazit statistiky využití zdrojů v kontejnerech
Chcete-li zobrazit využití CPU, paměti a síťového I/O všech kontejnerů, spusťte příkaz ‘docker stats’
$ docker stats
Výše uvedený příkaz zobrazí živé vysílání statistik využití zdrojů všech kontejnerů.
Chcete-li zobrazit statistiky konkrétního kontejneru, spusťte statistiky dockeru následované kontejnerem
$ docker stats myapp
Statistiky využití zdrojů bez živého vysílání
$ docker stats --no-stream
Spuštěné procesy kontejneru můžeme zobrazit pomocí ‘docker top ‘ příkaz.
Syntaxe:#
docker top {Container_Name_OR_ID}
$ docker top myapp
18) Zobrazit IP adresu kontejneru
Nízkoúrovňové informace o kontejneru se zobrazují pomocí příkazu „docker inspect“. IP adresu kontejneru můžeme získat z příkazu „docker inspect“
Syntaxe:
$ docker inspect -f ‘{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}’
Příklad
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp 172.17.0.2 $
19) Vytvořte obrázek kontejneru Docker
Obrázek kontejneru Docker se sestavuje pomocí příkazu „docker build“, ale pro příkaz docker build musíme nejprve vytvořit soubor Dockerfile. Předpokládejme, že se soubor Dockerfile vytvoří ve složce mycode a poté spustíme následující příkaz k vytvoření obrázku dockeru,
$ cd mycode $ docker build -t mynginx:v2 .
Přečtěte si také :Jak vytvořit obrázek Docker pomocí Dockerfile (krok za krokem)
20) Nastavte značku na obrázek Docker
Příkaz ‚docker tag‘ se používá k nastavení značky na obrázek.
Syntaxe:
$ docker tag source_image{:tag} target_image{:tag}
Předpokládejme, že chci nastavit značku zdrojového obrázku ‚mariadb:latest‘ jako ‚mariadb:10.03‘
$ docker tag mariadb:latest mariadb:10.03 $ docker images | grep -i mariadb mariadb 10.03 45a5a43e143a 3 days ago 410MB mariadb latest 45a5a43e143a 3 days ago 410MB $
Pokud si přejete nahrát obrázek do svého soukromého registru, označte obrázek tak, aby měl adresu URL registru následovanou projektem a obrázkem.
$ docker tag mariadb:latest myregistry:5000/db/mariadb:10.03
Nyní se přihlaste do svého soukromého registru pomocí příkazu „docker login“ a spusťte příkaz docker push, abyste jej nahráli.
$ docker push myregistry:5000/db/mariadb:10.03
To je z tohoto článku vše. Doufám, že pro vás byly tyto příklady informativní. Neváhejte se podělit o své dotazy a komentáře v níže uvedených sekcích komentářů.
Přečtěte si také :Jak vytvořit a používat síť MacVLAN v Dockeru