Dockerfile on yksinkertainen tekstitiedosto, joka sisältää kaikki komennot, joita käyttäjä voi kutsua komentoriville kuvan kokoamiseksi tai rakentamiseksi. Telakointirakenteen avulla voit helposti automatisoida rakentamisen, joka suorittaa useita komentoja, jotka määritellään docker-tiedostossa peräkkäin.
Esimerkiksi haluat ladata telakointikuvan telakointikeskuksesta omiin kehitystarpeisiisi. Sitten haluat päivittää kuvan, asentaa joitain paketteja kehitysprosessiasi varten. Tässä tapauksessa voit luoda docker-tiedoston, sisällyttää kaikki parametrit omiin tarpeisiisi ja luoda mukautetun kuvan. Kun olet luonut docker-tiedoston, voit käyttää sitä yhä uudelleen saman kuvan rakentamiseen asentamatta manuaalisesti kaikkia kehitysprosessisi edellyttämiä paketteja.
Dockerfile Basic
Ennen kuin työskentelet dockerfileen kanssa, on tärkeää tietää, miten dockerfile tehdään. Dockerfile sisältää tiettyjä avainsanoja, joita voidaan käyttää tietyn kuvan rakentamiseen. Alla on lyhyt kuvaus kaikista docker-tiedostossa käytetyistä avainsanoista:
- Alkaen: Sitä käytetään määrittelemään peruskuva, johon rakennamme.
- LISÄTÄ: Sitä käytetään tiedostojen lisäämiseen rakennettavaan säilöön. Yksinkertaisesti sanottuna RUN käytetään komentojen suorittamiseen ja tuloksen sitomiseen
- JUOSTA: Sitä käytetään kerrosten lisäämiseen peruskuvaan asentamalla komponentit.
- CMD: Sitä käytetään komentojen suorittamiseen säilön alussa. Nämä komennot suoritetaan vain, jos säilön käynnissä ei ole määritetty argumenttia.
- SISÄÄNTULOPISTE: Sitä käytetään komentojen suorittamiseen säilön alustusprosessin aikana. Sinun on käytettävä telakointitiedostossa ENTRYPOINT-asetusta, jos haluat käynnistää säilön automaattisesti kuvan rakentamisen jälkeen.
- ENV: Sitä käytetään määrittelemään ympäristömuuttujat säilön ajoaikaan.
- ALTISTUMINEN: Sitä käytetään määrittämään kuunteluportti, jotta verkko voidaan muodostaa ajon aikana.
- KUNNOSSAPITO: Sitä käytetään määrittämään kuvan luojan nimi ja sähköpostiosoite.
- KÄYTTÄJÄ: Sitä käytetään määrittämään käyttäjänimi, jota käytetään säilön suorittamiseen.
- ÄÄNENVOIMAKKUUS: Sitä käytetään sallimaan pääsy säilöstä Docker-isännän hakemistoon.
- TYÖRYHMÄ: Sitä käytetään määrittämään komennon polku ajon aikana.
- LABEL: Sitä käytetään lisäämään tarroja telakointikuvaan.
Docker-tiedoston luominen
Tässä osassa luomme docker-tiedoston LAMP-palvelinkuvan rakentamiseksi Ubuntun peruskuvasta.
Ensin sinun on luotava hakemisto docker-tiedoston tallentamiseksi. Voit luoda sen seuraavalla komennolla:
mkdir LAMPPULuo sitten hakemistoon Dockerfile-niminen hakemisto:
nano LAMP / Docker-tiedostoLisää seuraavat rivit:
Ubuntu: uusinKUNNOSSAPITO Hitesh Jethva
ENV DEBIAN_FRONTEND = ei-vuorovaikutteinen
SUORITA 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"]
ALTISTUMINEN 8080
Tallenna ja sulje tiedosto, kun olet valmis.
Rakennuskuva Docker-tiedostolla
Kun olet luonut Docker-tiedoston, voit helposti luoda mukautetun LAMP-kuvan Docker-tiedoston avulla.
Vaihda ensin hakemistoksi LAMP ja suorita seuraava komento kuvan rakentamiseksi tiedostosta:
cd LAMPPUdocker build -t "-lamppu: Dockerfile".
Yllä oleva komento alkaa ladata Ubuntun uusimman kuvan Docker Hubista ja asentaa tarvittavat paketit, jotka on määritetty Dockerfile-tiedostossa. Kun kuva on rakennettu onnistuneesti, sinun pitäisi nähdä seuraava tulos:
Rakennuskontekstin lähettäminen Docker-demonille 2.048 ktVaihe 1/6: FROM ubuntu: uusin
uusin: Vedetään kirjastosta / ubuntusta
54ee1f796a1e: Vedä valmis
f7bfea53ad12: Vedä valmis
46d371e02073: Vedä valmis
b66c17bbf772: Vedä valmis
Digest: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Tila: Ladattu uudempi kuva Ubuntu: uusimmalle
---> 4e2eef94cd6b
Vaihe 2/6: KUNNOSSAPITO Hitesh Jethva
---> Käynnissä 047977af2c2a
Välisäiliön 047977af2c2a poistaminen
---> 1331df625c4c
Vaihe 3/6: ENV DEBIAN_FRONTEND = ei-interaktiivinen
---> Käynnissä 3597152c7a1b
Välisäiliön 3597152c7a1b irrottaminen
---> 86c82c95e75d
Vaihe 4/6: SUORITA 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
Välisäiliön poistaminen 322532299fd9
---> f6897a9554f7
Vaihe 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Käynnissä 669635bc8bcb
Välisäiliön 669635bc8bcb poistaminen
---> e8400eb2e677
Vaihe 6/6: ALTISTUMINEN 8080
---> Käynnissä 937ae2b2d305
Välisäiliön 937ae2b2d305 poistaminen
---> 2123a857361d
Rakennettu onnistuneesti 2123a857361d
Merkitty lamppu onnistuneesti: Dockerfile
Voit nyt luetella uuden rakennetun kuvan suorittamalla seuraavan komennon:
telakointikuviaSinun pitäisi nähdä seuraava tulos:
TARVIKKEIDEN TAG-KUVATUNNUS LUOTTU KOKOlamppu Dockerfile 2123a857361d 44 sekuntia sitten 520MB
ubuntu uusin 4e2eef94cd6b 8 päivää sitten 73.9 Mt
Nyt sinulla on mukautettu LAMP-palvelinkuva kädessäsi. Voit myös nähdä jokaisen komennon historian seuraavalla komennolla:
telakointihistorian merkkivalo: DockerfileSinun pitäisi nähdä seuraava tulos:
LUOTTU KUVA LOON KOKO KOMMENTTI2123a857361d 16 minuuttia sitten / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 16 minuuttia sitten / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 minuuttia sitten / bin / sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 minuuttia sitten / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin… 0B
1331df625c4c 17 minuuttia sitten / bin / sh -c # (nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b 8 päivää sitten / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B
Säilön luominen LAMP-kuvasta
Nyt voit suorittaa säilön kuvastasi seuraavan komennon avulla:
docker run -dit -lamppu: DockerfileKun säilö on käynnistetty, sinun pitäisi nähdä seuraava tulos:
0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208Voit tarkistaa käynnissä olevan säilön seuraavalla komennolla:
telakka psSinun pitäisi saada seuraava tulos:
SÄILIÖTUNNUKSEN KUVA KÄSITTELY LUOTTELI TILASATAMIAc14794784eb2-lamppu: Dockerfile "apachectl -D FOREGR…" 2 minuuttia sitten Ylös 2 minuuttia 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan
Johtopäätös
Tässä oppaassa opit, mikä on Dockerfile, ja kuinka rakentaa docker-kuva Dockerfile-ohjelmalla. Tämä on erittäin hyödyllistä mukautettujen kuvien luomisessa sen sijaan, että teet muutoksia vedettyyn kuvaan.