A Dockerfile egy egyszerű szöveges fájl, amely tartalmazza az összes parancsot, amelyet a felhasználó meghívhat a parancssorba egy kép összeállításához vagy felépítéséhez. A docker build segítségével könnyedén automatizálhatja azt az összeállítást, amely egymás után több parancsot definiál a docker fájlban.
Például le szeretné tölteni a dokkoló képét a dokkoló központból az Ön saját fejlesztési igényeinek megfelelően. Ezután frissíteni kívánja a képet, telepítsen néhány csomagot a fejlesztési folyamatához. Ebben az esetben létrehozhat egy docker fájlt, belefoglalhatja az összes paramétert a saját igényeinek megfelelően, és elkészítheti az egyéni képet. A dockerfájl létrehozása után újra és újra felhasználhatja ugyanazt a képet, anélkül, hogy manuálisan telepítené az összes szükséges csomagot a fejlesztési folyamathoz.
Dockerfile Basic
A dockerfile használatának megkezdése előtt fontos tudni, hogyan készítsen dockerfile-t. A Dockerfile olyan konkrét kulcsszavakat tartalmaz, amelyek felhasználhatók egy adott kép elkészítéséhez. Az alábbiakban felsoroljuk a dockerfájlban használt összes kulcsszó rövid magyarázatát:
- TÓL TŐL: Az alapkép meghatározására szolgál, amelyre építünk.
- ADD: Fájlok hozzáadására szolgál az épülő tárolóhoz. Egyszerűbben kifejezve: a RUN parancsok futtatására és az eredmény végrehajtására szolgál
- FUSS: Rétegek hozzáadására szolgál az alapképhez, alkatrészek telepítésével.
- CMD: A parancsok futtatására szolgál a tároló elején. Ezek a parancsok csak akkor futnak, ha a tároló futtatása közben nincs megadva argumentum.
- BELÉPÉSI PONT: Parancsok futtatására szolgál a tároló inicializálása során. Ha a kép elkészítése után automatikusan meg akarja indítani a tárolót, akkor a dockfile-ban ENTRYPOINT-ot kell használnia.
- ENV: A környezeti változók meghatározására szolgál a tároló futási idejében.
- EXPOZÍCIÓ: A hallgatási port megadására szolgál, hogy a hálózat futás közben legyen engedélyezve.
- KARBANTARTÓ: A képalkotó nevének és e-mail azonosítójának megadására szolgál.
- FELHASZNÁLÓ: A tároló futtatásához használt felhasználónév megadására szolgál.
- HANGERŐ: Arra szolgál, hogy hozzáférést engedélyezzen a tárolóból a Docker gazdagép könyvtárába.
- WORKDIR: A futás közben végrehajtandó parancs elérési útjának megadására szolgál.
- CÍMKE: Címkék hozzáadására szolgál a dokkoló képéhez.
A Dockerfájl létrehozása
Ebben a szakaszban létrehozunk egy docker fájlt egy LAMP kiszolgáló kép felépítéséhez az Ubuntu alapképből.
Először létre kell hoznia egy könyvtárat a dockerfájl tárolásához. A következő paranccsal hozhatja létre:
mkdir LAMPEzután hozzon létre egy Dockerfile nevű könyvtárat a könyvtáron belül:
nano LAMP / DockerfileAdja hozzá a következő sorokat:
Az ubuntuból: legújabbKARBANTARTÓ Hitesh Jethva
ENV DEBIAN_FRONTEND = nem interaktív
RUN Futtassa apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "FOREGROUND"]
8080-as expozíció
Mikor elkészült, mentse és zárja be a fájlt.
Épületkép a Dockerfile segítségével
A Dockerfile létrehozása után könnyen létrehozhat egy egyedi LAMP képet a Dockerfile segítségével.
Először módosítsa a könyvtárat LAMP-ra, és futtassa a következő parancsot a kép létrehozásához a fájlból:
cd LÁMPAdocker build -t "lámpa: Dockerfile".
A fenti parancs megkezdi az Ubuntu legújabb képének letöltését a Docker Hubról, és telepíti a Dockerfile-ben megadott szükséges csomagokat. Miután a kép sikeresen elkészült, a következő kimenetet kell látnia:
Építési kontextus küldése a Docker 2. démonnak.048kB1/6. Lépés: UBuntu-tól: legújabb
legújabb: Húzás a könyvtárból / ubuntu
54ee1f796a1e: Húzza ki
f7bfea53ad12: Húzza ki
46d371e02073: Húzza ki
b66c17bbf772: Húzza teljes
Digest: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Állapot: Letöltött újabb kép az ubuntu: legújabb verzióhoz
---> 4e2eef94cd6b
2/6. Lépés: KARBANTARTÓ Hitesh Jethva
---> Futás a 047977af2c2a-ban
A 047977af2c2a közbenső tartály eltávolítása
---> 1331df625c4c
3/6. Lépés: ENV DEBIAN_FRONTEND = nem interaktív
---> Futás a 3597152c7a1b-ben
A 3597152c7a1b közbenső tartály eltávolítása
---> 86c82c95e75d
4/6. Lépés: Futtassa az apt-get update -y && apt-get install apache2 mariadb-szervert
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
A 322532299fd9 közbenső tartály eltávolítása
---> f6897a9554f7
5/6. Lépés: CMD ["apachectl", "- D", "FOREGROUND"]
---> Futás: 669635bc8bcb
A köztes tartály eltávolítása 669635bc8bcb
---> e8400eb2e677
6/6. Lépés: 8080 EXPOZÍCIÓ
---> Futás: 937ae2b2d305
A 937ae2b2d305 közbenső tartály eltávolítása
---> 2123a857361d
Sikeresen felépített 2123a857361d
Sikeresen felcímkézett lámpa: Dockerfile
Most felsorolhatja az újonnan létrehozott képet a következő parancs futtatásával:
dokkoló képekA következő kimenetet kell látnia:
A TÁROLÓ CÍMKÉJÉNEK KÉSZÍTETT MÉRETElámpa Dockerfile 2123a857361d 44 másodperccel ezelőtt 520MB
ubuntu latest 4e2eef94cd6b 8 napja 73.9 MB
Most egy egyedi LAMP szerver kép van a kezében. Az egyes parancsok előzményeit a következő paranccsal is megtekintheti:
dokkolótörténeti lámpa: DockerfileA következő kimenetet kell látnia:
MÉRET MEGJEGYZÉSÉVEL LÉTREHOZOTT KÉP2123a857361d 16 perccel ezelőtt / bin / sh -c # (nop) EXPOZÍCIÓ 8080 0B
e8400eb2e677 16 perccel ezelőtt / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 perccel ezelőtt / bin / sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 perccel ezelőtt / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin… 0B
1331df625c4c 17 perccel ezelőtt / bin / sh -c # (nop) KARBANTARTÓ Hitesh Jethva 0B
4e2eef94cd6b 8 napja / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B
Tároló létrehozása LAMP képből
Most futtathat egy tárolót a képéről a következő paranccsal:
docker run -dit lámpa: DockerfileA tároló elindítása után a következő kimenetet kell látnia:
0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208A futó tárolót a következő paranccsal ellenőrizheti:
dokkoló psA következő kimenetet kell kapnia:
KONTÉNER ID KÉP PARANCS LÉTREHOZOTT ÁLLAPOT PORTS NEVEKc14794784eb2 lámpa: Dockerfile "apachectl -D FOREGR…" 2 perccel ezelőtt 2 perccel 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan
Következtetés
Ebben az útmutatóban megtudhatta, mi a Dockerfile, és hogyan készítsen egy dokkoló képet a Dockerfile segítségével. Ez nagyon hasznos az egyéni képek létrehozásához ahelyett, hogy változtatásokat hajtana végre egy kihúzott képen.