Docker 11. Taggelés
Tartalomjegyzék:
A Docker kép a Docker tárolók terve, amely tartalmazza az alkalmazást és mindent, ami az alkalmazás futtatásához szüksége van. A tároló egy kép futásiidejű példánya.
Ebben az oktatóanyagban elmagyarázzuk, mi a Dockerfile, hogyan lehet azt létrehozni, és hogyan lehet a Docker képet létrehozni a Dockerfile segítségével.
Mi a Dockerfile?
A Dockerfile egy szövegfájl, amely tartalmazza az összes parancsot, amelyet a felhasználó a parancssorban futtathat egy kép létrehozásához. Ez tartalmazza a Docker által a kép létrehozásához szükséges összes utasítást.
A Docker képek egy fájlrendszer rétegek sorozatából állnak, amelyek a kép Docker fájljában található utasításokat tartalmazzák, amely egy futtatható szoftver alkalmazást alkot.
A Docker fájl formája a következő:
# Comment INSTRUCTION arguments
INSTRUCTION
nem nagybetű-érzékeny, de a szokásos, ha a nevét UPPERCASE használatával használja.
Az alábbiakban felsoroljuk a leggyakrabban használt Dockerfile utasítások rövid leírását:
- ARG - Ez az utasítás lehetővé teszi azon változók meghatározását, amelyek átadhatók az építéskor. Beállíthat egy alapértelmezett értéket. FROM - az új kép létrehozásának alapképe. Ennek az utasításnak kell lennie a Dockerfile első kommentelés nélküli utasításának. Az egyetlen kivétel ettől a szabálytól, ha egy változót akar használni a
FROM
argumentumban. Ebben az esetben aFROM
ot egy vagy többARG
utasítás előzheti meg. CÍMKE - Metaadatok hozzáadására szolgál egy képhez, például leírás, verzió, szerző..etc. Egynél többLABEL
is megadhat, és mindenLABEL
utasítás kulcs-érték pár. RUN - Az ebben az utasításban megadott parancsok a végrehajtási folyamat során kerülnek végrehajtásra. MindenRUN
utasítás új réteget hoz létre az aktuális kép tetejére. ADD - fájlok és könyvtárak másolására szolgál a megadott forrásból a dokkolóképen a megadott rendeltetési helyre. A forrás lehet helyi fájlok vagy könyvtárak, vagy egy URL. Ha a forrás helyi tar-archívum, akkor automatikusan kicsomagolja a Docker-képbe. MÁSOLÁS - Hasonlóan azADD
de a forrás csak egy helyi fájl vagy könyvtár lehet. ENV - Ez az utasítás lehetővé teszi egy környezeti változó meghatározását. CMD - Olyan parancs megadására szolgál, amelyet egy tároló futtatásakor hajtanak végre. Csak egyCMD
utasítást használhat a Dockerfile-ben. ENTRYPOINT - Hasonlóan aCMD
, ez az utasítás meghatározza, hogy melyik parancs kerül végrehajtásra egy tároló futtatásakor. WORKDIR - Ez az irányelv beállítja aRUN
,CMD
,ENTRYPOINT
,COPY
ésADD
utasítások aktuális munkakönyvtárát. FELHASZNÁLÓ - Állítsa be a felhasználónevet vagy azUID
, amelyet aRUN
,CMD
,ENTRYPOINT
,COPY
ésADD
utasítások futtatásakor használ. VOLUME - lehetővé teszi, hogy a gazdagép könyvtárat csatolja a tárolóhoz. EXPOSE - Annak a portnak a megadására szolgál, amelyen a tároló figyeli a futási időt.
Ahhoz, hogy kizárja a fájlokat és könyvtárakat a képhez való hozzáadásáról, hozzon létre egy
.dockerignore
fájlt a helyi könyvtárban. A
.dockerignore
szintaxisa hasonló a Git
.gitignore
.
A Dockerfile útmutatásainak teljes leírását és részletes magyarázatát a hivatalos Dockerfile referenciaoldalon találja.
Hozzon létre egy Docker-fájlt
A leggyakoribb forgatókönyv Docker képek létrehozásakor, ha egy meglévő képet húznak egy rendszerleíró adatbázisból (általában a Docker Hub-ból), és megadják az alapképen elvégzendő módosításokat. A Docker képek létrehozásakor a leggyakrabban használt alapkép az Alpine, mivel kicsi és optimalizált RAM-ban való futtatáshoz.
Ebben a példában létrehozunk egy Docker képet a Redis szerverhez. Alapképként a legújabb ubuntu 18.04-et fogjuk használni.
Először hozzon létre egy könyvtárat, amely tartalmazza a Dockerfile fájlt és az összes szükséges fájlt:
mkdir ~/redis_docker
Keresse meg a könyvtárat, és hozza létre a következő Dockerfile-t:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
Magyarázza el a Dockerfile minden sorának jelentését:
- Az
1
sorban az alapképet definiáljuk. A3
sorban kezdődőRUN
utasítás frissíti az apt indexet, telepíti a „redis-server” csomagot és megtisztítja az apt gyorsítótárat. Az utasításokban használt parancsok megegyeznek a redis telepítéséhez az Ubuntu kiszolgálóval használt parancsokkal. Az EXPOSE utasítás meghatározza azt a portot, amelyen az redis kiszolgáló figyel. Az utolsó sorban aCMD
utasítást használjuk az alapértelmezett parancs beállításához. amely akkor kerül végrehajtásra, amikor a tároló fut.
Mentse el a fájlt, és zárja be a szerkesztőt.
A kép felépítése
A következő lépés a kép felépítése. Ehhez futtassa a következő parancsot a könyvtárból, ahol a Dockerfile található:
docker build -t linuxize/redis.
A
-t
opció határozza meg a kép nevét és opcionálisan felhasználónevet és címkét a 'felhasználónév / képnév: címke' formátumban.
Az építkezési folyamat kimenete így néz ki:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
Amikor a készítési folyamat befejeződik, az új kép megjelenik a képlistában:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
Konténer futtatása
Most, hogy a kép elkészült, a következőből futtat egy tárolót:
docker run -d -p 6379:6379 --name redis linuxize/redis
A
-d
beállítások azt mondják a Dockernek, hogy a tárolót elválasztott módban futtassa, a
-p 6379:6379
opció közzéteszi a 6379 portot a gazdagépen, és a
--name redis
opció határozza meg a tároló nevét. A
linuxize/redis
utolsó argumentuma a kép neve, amelyet a tároló futtatására használunk.
Amikor a tároló elindul, használja a következő parancsot az összes futó tároló felsorolásához:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
Annak ellenőrzéséhez, hogy minden úgy működik-e, ahogyan a
redis-cli
kell csatlakoztatni a dokkoló-tárolóhoz:
redis-cli ping
A redis szervernek
PONG
val kell válaszolnia.
Következtetés
Ez az oktatóanyag csak a Dockerfiles képek készítésének használatának alapjait fedte le. A Dockerfájlok írásáról és az ajánlott bevált gyakorlatokról további információt a Dockerfájlok írásának legjobb gyakorlat című témakörben talál.
Hogyan készítsünk szöveges képeket online ingyenesen?
A TEXT IMAGE egy ingyenes online szöveges képgenerátor, amely használható a bmp formátumú képek konvertálásához , gif, jpg és png egy szöveges képre, amely a felhasználó által kiválasztott karakterekből áll.
Hogyan készítsünk egy sziluett képet a photoshop segítségével
Tanulja meg a Photoshop használatát a hasznos, elegáns sziluettkép könnyű létrehozásában.
Hogyan készítsünk kiváló minőségű tervezési maketteket a makedrop segítségével
Egy egyszerű eszköz használatával mostantól saját igényei szerint kiváló minőségű tervezési makettákat készíthet. Így lehet felhasználni a Mockdrop-ot a maximális teljesítmény eléréséhez.