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
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
A letöltött image-fájlok listájának megtekintéséhez írja be a következőt:
$ docker 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
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.
-
“-d”: futtassa a konténert a háttérben.
-
“nginx”: a konténer összeállításához használt image-fájl.
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