Oktatóanyagok > Hogyan kezelhetők a Docker konténerek?

Hogyan kezelhetők a Docker konténerek?

Közzétéve: 20 január 2020

Containers Docker Ubuntu Virtualization

A Docker egy olyan szoftverplatform, amelyet a konténerek koncepcióján alapuló alkalmazások telepítésének megkönnyítésére fejlesztettek ki. A platform felhasználható alkalmazások létrehozására, tesztelésére és terjesztésére, szabványos egységekben, úgynevezett konténerekben történő gyűjtésével.

A Docker konténerek elkülönített környezetek, ahol az alkalmazások más folyamatok beavatkozása nélkül futtathatók. Hasonlóan a virtuális gépek környezetéhez, az egyes konténerekhez specifikus számítási erõforrásokat allokálhatnak. A virtuális gépekkel ellentétben a Docker nem igényel hardveres emulációt, hanem minden gazdagép fizikai hardverét használja.

Az erőforrás-hatékonyság és a továbbfejlesztett rendszer-teljesítmény előállítása érdekében a tárolást a virtualizáció természetes fejlődésének tekinthetjük. Sőt, mivel rendelkeznek az alkalmazások - beleértve a könyvtárakat, a rendszer eszközöket és a kódokat is - helyes végrehajtásához szükséges eszközökkel, a konténerek egyszerűsítik az alkalmazások telepítését anélkül, hogy aggódnunk kellene a futási környezet konfigurációja miatt.

Ebben az oktatóanyagban megismerheti, hogyan lehet a legjobban kezelni a Docker konténereket Linux rendszeren, hogyan tölthet le image-fájlokat a Docker Hubból, hogyan hozhat létre új konténert, és hogyan menthet image-et róla.

Ha a Docker platform még nincs feltelepítve a rendszerén, akkor ajánlott átolvasnia a Hogyan telepíthet Dockert az Ubuntu 18.04-re? útmutatónkat. 

Image-fájlok letöltése

A konténerek image-ekből készülnek. Alapértelmezés szerint ezeket az image-fájlokat letöltik a Docker Hubból, a Docker által biztosított hivatalos nyilvántartásból.

Bárki tárolhatja az image-fájljait a Docker Hub-on. Ez lehetővé teszi az előrecsomagolt image-k használatát az alkalmazások alapjaként.

Próbálja meg futtatni az alábbi parancsot:

$ docker run centos

Docker Run CentOS

A Docker megkeresi a "centos" image-fájlt a helyi nyilvántartásban. Ha nem találja meg (mivel eddig még nem töltötte le), a Docker letölti a Docker Hubból, és felépíti a konténert ezzel a image-fájllal.

A használt image nem ad vizuális kimenetet, de a konténert a parancs segítségével futtathatja:

$ docker ps

Az összes meglévő konténer megtekintéséhez, mind futó, mind leállított állapotúakhoz gépelje be a következőt:

$ docker ps -a

Show Containers

A letöltött image-fájlok listájának megtekintéséhez írja be a következőt:

$ docker images

Docker Show Images

Konténerek készítése

A konténerek hasonlóak a virtuális gépekhez, és erőforrások szempontjából olcsóbbak.

Próbáljon meg egyet az előzőleg letöltött centos image-fájllal készíteni:

$ docker run -it centos

A "-it" kapcsoló hozzáférést biztosít a shellhez a konténerben. A megjelenített shell nem az operációs rendszer, hanem a konténer: az összes parancs a konténer belsejében lévő operációs rendszer shelljén (ebben az esetben Ubuntu) lesz végrehajtva, nem pedig a gazdagép shelljében.

A konténer shelljéből történő kilépéséhez és a host shelljéhez való visszatéréshez írja be:

$ exit

Exit from the shell of container

Konténer indításához, leállításához vagy törléséhez használja az alábbi parancsokat:

$ docker start ID_or_container_name
$ docker stop ID_or_container_name
$ docker rm ID_or_container_name

A konténer elindítása vagy törlése előtt annak "leállt" állapotban kell lennie.A konténer blokkolása előtt annak "fut" állapotban kell lennie.

A konténerek izolált környezetben vannak, ezért definíciójuk szerint "zártak". A "tartalommal" való interakcióhoz jelölje ki a kommunikációs portot.

$ docker run -p 8081:80 -d nginx
  • “docker run”: konténer indítási parancs.

  • “-p 8081:80”: kiteszi a 80 konténerportot a host 8081 portján.

    • Ha egy konténer hosztolja a WebServert, akkor elérheti a "localhost: 8081" helyen.

  • “-d”: futtassa a konténert a háttérben.

  • “nginx”: a konténer összeállításához használt image-fájl.

    • Ha az image-fájl nem található meg helyben, akkor letölthető a Docker Hubból.

NGINX Web Page

Konténer image-fájlok készítése

A konténer elkészítése és a szükséges „testreszabások” után a relatív image-fájl létrehozása ajánlott: minden, ami a konténerbe beillesztésre kerül (kiegészítő modulok telepítése vagy egyéb testreszabások) abban is marad, nem pedig az összeállításhoz használt image-fájlon. Ha eltávolítja és újból létrehozza, a konténerre nem lesznek érvényesek az addig elvégzett módosítások.

Tegyük fel, hogy létrehozott egy konténert a CentOS image-dzsel, és telepítette az Nginx-et. Ha eltávolítja a konténert, és újra létrehozza azt Ubuntu telepítővel, akkor nem lesz Nginx a tárolóban, mivel a használt image ezt nem tartalmazza.

Egy konténer image-fájljának előállításához (és biztonsági másolat készítéséhez, hogy ugyanazon feltételekkel hozzák létre a tárolót) hajtsa végre a következő parancsot:

$ docker commit -m "List of changes made" -a "User name" container_id repository/image_name
  • "-m" a változtatások listájának írására szolgál, hogy naplót kapjon.

  • "-a" az image-t generáló felhasználó nevének jelölésére szolgál.

Ez a parancs elmenti a image-t a helyi nyilvántartásba (a docker image-k között megtekinthető).

A képet a Docker Hub-ban is elmentheti. Ezt úgy lehet elvégezni, hogy először hitelesíti magát a Docker Hub-on, a Docker használatával (shellből), beírva az alábbiakat:

$ docker login -u username

A hitelesítéshez szükséges jelszót be kell írnia a Docker Hubon.

$ docker push username/image_name