Docker poznámky

Co je to Docker

Docker je platforma umožňující běh softwarových kontejnerů. Kontejnery pak umožňují běh programu izolovaně od operačního systému pouze s knihovnami a nastavením, které je jím vyžadované. Kontejnery jsou instancemi images. Image popisuje co má v kontejneru běžet a z této “definice” je spuštěn kontejner. K dispozici jsou předpřipravené images https://hub.docker.com/explore/ z nichž lze odvodit další.

Základní příkazy Dockeru

  • docker images = vypíše seznam lokálních images
  • docker ps = vypíše seznam běžících kontejnerů
  • docker ps -a = vypíše seznam neběžících kontejnerů
  • docker rm <kontejner> = smazat neběžící kontejner
  • docker rmi <image> = smazat lokální image
  • docker start <kontejner> = spuštění neběžícího kontejneru
  • docker stop <kontejner> = ukončení neběžícího kontejneru
  • Image lze stáhnout lokálně pomocí příkazu docker pull <jmeno img>:<verze>. Např. pro https://hub.docker.com/_/nginx/  docker pull nginx:1.13.5

Spuštění staženého image

docker run –name <pojmenování kontejneru> -d -p 8080:80 nginx:1.13.5

(na http://localhost:8080/ bude běžící nginx; poběží jako deamon)

Připojení do běžícího kontejneru

docker exec -ti <jméno kontejneru> /bin/sh

Docker run parametry

  • –name <pojmenovani kontejneru> = libovolné jméno, pod kterým bude kontejner běžet
  • -d = spustit kontejner jako deamona
  • -p <venkovní port>:<vnitřní port> = mapování portu
  • -v D:\docker\test\src:/usr/share/nginx/html:ro = mapování umístění v kontejneru
    • :ro = pouze ke čtení (read only)
    • lze použít více krát, na složky nebo i jednotlivé soubory
  • –rm po ukončení běhu kontejneru dojde k jeho odstranění (nezůstane na seznamu běžících)
  • -ti = běh v interaktivním módu
  • -e <proměnná>=<hodnota> = environment variable

Dockerfile – vytvoření definice pro vlastní image

Příkaz: docker build -t <jméno např. autora>/<jméno image>:<verze> . Docker dokumentace pro build.

Nový image podle příkladu vyjde z image alpine a přidá do něj vim, curl, git a nakopíruje soubor, který by byl přiložen vedle tohoto dockrfilu.

Při sestavování image, podle tohoto příkladu, by došlo k vytváření průběžných image. Příkazem docker images se vypíšou všechny lokální image, příkazem docker images -a se vypíšou i image, které nemají název, ale jen ID. Image bez názvu se použijí jako cache při opětovném sestavování image.

Odstranění bezejmených image lze pomocí docker image prune.

<none>:<none> image se dělí na 2 typy – viz: “What are Docker <none>:<none> images?

Log kontejneru

docker logs <jméno kontejneru> (dokumentace docker logs)

Další informace o kontejneru lze získat např. pomocí docker inspect <jméno kontejneru> – viz. docker inspect.

Příklad spuštění WordPressu v dockeru

  • docker run –name mysql -v D:\docker\mysql_storage:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.2 = spuštění kontejneru s databází MySQL, úložiště db je namapované na místo na disku mimo kontejner
  • docker run -d –name wordpress –link mysql:mysql -p 8080:80 -v D:\docker\_test\wordpress:/var/www/html/wp-content wordpress:4.8.1-php7.1-apache = spuštění kontejneru s WordPressem; opět namapovaná složka mimo kontejner; spojení na kontejner s databází je pomocí  parametru “link”

Parametr “link” je nyní zastaralý – viz. “Legacy container links“. Nyní je doporučeno propojení provést přes “networking“.

Odstraní všech neběžících kontejnerů na Windows

zdroj: https://gist.github.com/ngpestelos/4fc2e31e19f86b9cf10b

Poznámky vychází ze zdrojů:

Share
Příspěvek byl publikován v rubrice Nezařazené se štítky . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*