Android

Docker futtatási parancs példákkal

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

How to Setup Multinode Hadoop 2 on CentOS/RHEL Using VirtualBox

Tartalomjegyzék:

Anonim

A Docker egy olyan platform, amely lehetővé teszi az alkalmazások fejlesztését, tesztelését és telepítését hordozható, önellátó tárolókként, amelyek gyakorlatilag bárhol futhatnak.

A docker run parancs létrehoz egy tárolót egy adott képből, és egy parancs használatával elindítja a tárolót. Ez az egyik első parancs, amelyet meg kell ismernie, amikor elkezdi dolgozni a Dockerrel., a hivatalos Nginx képet fogjuk használni a Docker tároló futtatásának különféle módjaira.

Docker futtatás parancs

A docker run parancs a következő formában docker run :

docker run IMAGE

A kép neve, amelyből a tárolót létre kell hozni, az egyetlen szükséges argumentum a docker run parancsához. Ha a kép nincs a helyi rendszeren, akkor kihúzza a rendszerleíró adatbázisból.

Ha nem ad meg parancsot, akkor a tároló futtatásakor a ENTRYPOINT CMD vagy ENTRYPOINT utasításaiban megadott parancs végrehajtásra kerül.

Az 1.13-as verziótól kezdve a Docker CLI-t átszervezték, és az összes parancs az objektum alá lett csoportosítva, amellyel kölcsönhatásba lépnek.

Mivel a run parancs kölcsönhatásba lép a konténerekkel, ez most a docker container alparancsai. Az új parancs szintaxisa a következő:

docker container run IMAGE

A régi, 1.13 előtti szintaxist továbbra is támogatják. A motorháztető alatt a docker run parancs egy álnév a docker container run . A felhasználókat arra ösztönzik, hogy használják az új parancs szintaxist.

Az összes docker container run listája megtalálható a Docker dokumentációs oldalon.

Futtassa a konténert az előtérben

Alapértelmezés szerint, ha nincs megadva opció a docker run parancsához, a gyökér folyamat az előtérben docker run el. Ez azt jelenti, hogy a szokásos bemenet, kimenet és a gyökér folyamat hibája kapcsolódnak a terminál munkamenethez.

docker container run nginx

Az nginx folyamat kimenete megjelenik a terminálon. Mivel nincs kapcsolat a webszerverrel, a terminál üres.

A tároló leállításához fejezze be a futó Nginx folyamatot a CTRL+C megnyomásával.

Futtassa a konténert leválasztott módban

Annak érdekében, hogy a tároló működjön, amikor kilép a terminál munkamenetéről, indítsa el különálló módban. Ez hasonló a Linux folyamat futtatásához a háttérben.

Használja a -d beállítást a leválasztott tároló elindításához:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

A leválasztott tároló leáll, ha a gyökér folyamat leáll.

A futó tárolókat a docker container ls paranccsal listázhatja.

A terminál csatlakoztatásához a leválasztott tároló gyökérfolyamatához használja a docker container attach parancsot.

Távolítsa el a konténert kilépés után

Alapértelmezés szerint, amikor a tároló kilép, a fájlrendszere továbbra is fennmarad a gazdagépen.

A --rm beállítások --rm docker run parancsot arra, hogy távolítsa el a tárolót, amikor automatikusan kilép:

docker container run --rm nginx

Lehet, hogy az Nginx kép nem a legjobb példa a tároló fájlrendszerének a tároló kilépése után történő tisztítására. Ezt az opciót általában olyan előtér-tárolókon használják, amelyek rövid távú feladatokat hajtanak végre, például teszteket vagy adatbázis-biztonsági mentéseket.

Állítsa be a tartály nevét

A Docker programban minden tárolót UUID és neve UUID . Alapértelmezés szerint, ha nincs kifejezetten beállítva, a tároló nevét automatikusan a Docker démon generálja.

A --name opcióval rendelhet egyedi nevet a tárolóhoz:

docker container run -d --name my_nginx nginx

A tároló nevének egyedinek kell lennie. Ha megpróbál elindítani egy másik azonos nevű tárolót, akkor hasonló hibaüzenetet kap:

docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.

Futtassa az docker container ls -a az összes tároló felsorolásához és a nevük megtekintéséhez:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx

Az értelmes nevek hasznosak a tároló hivatkozásához a Docker hálózaton belül vagy a docker CLI parancsok futtatásakor.

Konténer portok kiadása

Alapértelmezés szerint, ha nem jelentenek meg portokat, a tárolóban futó folyamat csak a tároló belsejéből érhető el.

A portok közzététele azt jelenti, hogy a tároló portjait leképezik a gazdagép portjaival, hogy a portok elérhetőek legyenek a Docker-en kívüli szolgáltatások számára is.

Egy port közzétételéhez használja a -p beállításokat az alábbiak szerint:

-p host_ip:host_port:container_port/protocol

  • Ha nincs megadva host_ip, akkor az alapértelmezés szerint 0.0.0.0 . Ha nem ad meg protocol , akkor alapértelmezés szerint TCP. Több port közzétételéhez használjon multiple- -p opciókat.

A tárolóban lévő TCP 80 (nginx) port és a host localhost felület 8080 portjának leképezéséhez futtassa:

docker container run --name web_server -d -p 8080:80 nginx

A port közzétételének ellenőrzéséhez nyissa meg a böngészőjében a http://localhost:8080 , vagy futtassa a következő curl parancsot a Docker gazdagépen:

curl -I

A kimenet így néz ki:

HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes

Adatok megosztása (beépítési mennyiségek)

Egy tároló leállításakor a tároló által generált összes adat eltávolításra kerül. A dokkoló kötetek az előnyben részesített módszer az adatok megőrzésére és több tárolóra történő megosztására.

Kötetek létrehozásához és kezeléséhez használja a -p beállításokat az alábbiak szerint:

-v host_src:container_dest:options

  • A host_src abszolút elérési út lehet a gazdagépen lévő fájlhoz vagy könyvtárhoz, vagy egy elnevezett köteten keresztül. A host_src egy abszolút útvonal a fájlban vagy könyvtárban a tárolón.A opciók lehetnek rw (read-write) és ro (read-only)). Ha nincs megadva opció, akkor alapértelmezés szerint rw .

Hogy elmagyarázzuk, hogyan működik, hozzunk létre egy könyvtárat a gazdagépen, és tegyünk bele egy index.html fájlt:

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

Ezután csatolja a public_html könyvtárat a /usr/share/nginx/html a tárolóban:

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

A public_html könyvtár abszolút elérési útjának megadása helyett a $(pwd) parancsot használjuk, amely kinyomtatja az aktuális működő könyvtárat.

Ha beírja a böngészőjébe a http://localhost:8080 , akkor látnia kell az index.html fájl tartalmát. Használhatja a curl :

curl

Testing Docker Volumes

Futtassa a konténert interaktív módon

Amikor olyan interaktív folyamatokkal foglalkozik, mint a bash , a -i és -t opciókkal indítsa el a tárolót.

Az -it opciók azt mondják Dockernek, hogy tartsa a szabványos bemenetet a terminálhoz csatlakoztatva, és kiossza az ál-tty-ot:

docker container run -it nginx /bin/bash

A tároló Bash-héját csatolják a terminálhoz, és a parancssor megváltozik:

root@1da70f1937f5:/#

Most már kapcsolatba léphet a tároló héjával, és futtathat bármilyen parancsot a benne.

Ebben a példában egy parancsot ( /bin/bash ) adtunk argumentumként a docker run parancshoz, amelyet a Docker fájlban megadott helyett hajtottak végre.

Következtetés

A Docker az alkalmazások csomagolására és telepítésére szolgáló szabvány, valamint a CI / CD, az automatizálás és a DevOps alapvető alkotóeleme.

A Docker-tároló docker container run parancsot használják a Docker-tárolók létrehozásához és futtatásához.

dokkmunkás