Docker je postao osnovni alat u razvoju i implementaciji aplikacija, omogućavajući stvaranje izoliranih i reproduktivnih okruženja. Međutim, često nam je potrebno više od unaprijed napravljenih slika dostupnih na Docker Hub-u, i tu dolazi u obzir mogućnost da napravimo vlastite prilagođene slike koristeći Dockerfile.
Ovaj članak će vas voditi korak po korak u kreiranju prilagođenih slika s Dockerfileom, objašnjavajući sve od osnova do optimizacije i raspoređivanje vaših kontejnera. Ako ste ikada željeli razumjeti kako zapravo funkcionira Docker image building, ovo je pravo mjesto.
Šta je Dockerfile?
Un dockerfile To je tekstualna datoteka koja sadrži niz instrukcija koje Docker tumači kako bi napravio sliku. Svaki red u Dockerfile-u predstavlja a poklopac u konačnoj slici, što omogućava optimizaciju i ponovnu upotrebu dijelova procesa izgradnje.
Docker slike su zasnovane na a sistem slojeva, što znači da svaki put kada se instrukcija izvrši unutar Dockerfile-a, novi sloj se kreira na vrhu prethodnog. Ovo omogućava efikasnu upotrebu skladištenje i olakšava ponovnu upotrebu dijelova slike u budućim konstrukcijama. Ako želite saznati više o tome kako optimizirati pohranu u svojim projektima, preporučljivo je istražiti korištenje efikasne opcije šifriranja.
Osnovne upute u Dockerfileu
Da bismo kreirali prilagođenu sliku, moramo znati neka od uputa fundamentalno koji može biti uključen u Dockerfile:
- OD: Definira osnovnu sliku na kojoj će biti izgrađena naša prilagođena slika. primjer:
FROM ubuntu:latest
. - RUN: Omogućava vam da pokrenete komande na slici tokom njene konstrukcije. Koristi se za ugradnju paketi ili konfigurišite sliku. primjer:
RUN apt-get update && apt-get install -y curl
. - KOPIJA: Kopira datoteke iz sistema datoteka hosta na sliku. primjer:
COPY app.py /app/
. - CMD: Definira naredbu koja će se izvršiti kada se naredba pokrene. kontejner na osnovu slike. primjer:
CMD ["python3", "app.py"]
. - ULAZNA TAČKA: Slično CMD-u, ali dozvoljava kontejneru da funkcionira kao a izvršni.
- ENV: Definiši Varijable okruženja unutar kontejnera. primjer:
ENV APP_ENV=production
. - RADNI DIR: Postavite radni imenik unutar kontejnera.
- IZLOŽITI: Odredite portovi koju će kontejner koristiti.
Koraci za kreiranje prilagođenih Dockerfile slika
Pretpostavimo da želimo da kreiramo sliku za aplikaciju u piton koristeći boca. Da bismo to učinili, slijedit ćemo ove korake:
1. Pripremite okolinu
Kreirajte folder za svoju aplikaciju i unutar njega fajl Dockerfile
. Također će vam trebati fajl requirements.txt
sa potrebne zavisnosti koje zahtijeva vaša aplikacija.
2. Definirajte Dockerfile
Unutar datoteke Dockerfile
, pišemo sljedeće:
FROM python:3.9 WORKDIR /app COPY requirements.txt /app/ RUN pip install -r requirements.txt COPY . /app/ CMD ["python", "app.py"]
3. Izgradite sliku
Otvorite terminal u fascikli u kojoj se nalazi Dockerfile i pokrenite:
docker build -t mi-app .
4. Pokrenite kontejner
Za pokretanje a kontejner Na osnovu novonastale slike, koristite:
docker run -p 5000:5000 mi-app
Najbolje prakse za kreiranje prilagođenih Dockerfile slika
- Koristite lagane osnovne slike: Odlučite se za minimalističke slike kao što su
alpine
za smanjenje veličine slike i poboljšanje sigurnost. - Iskoristite keš memoriju: Naručite upute
Dockerfile
tako da se česte promjene pojavljuju na kraju kako bi se optimizirala upotreba sakriven. - Izbrišite nepotrebne fajlove: SAD
.dockerignore
kako biste izbjegli kopiranje datoteka koje nisu potrebne unutar kontejnera. - Minimizirajte broj slojeva: Koristite isto
RUN
grupirati komande i smanjiti nepotrebnih slojeva.
Kako dijeliti prilagođene Dockerfile slike
Da biste podijelili svoju sliku s drugim programerima ili je postavili na server, možete je otpremiti na Docker Hub:
1. Prijavite se na Docker Hub
docker login
2. Označite sliku
docker tag mi-app usuario/mi-app:v1
3. Otpremite sliku
docker push usuario/mi-app:v1
Sada svako može preuzeti i koristiti vašu sliku sa:
docker pull usuario/mi-app:v1
Izrada prilagođenih slika pomoću Dockerfile-a jedan je od najboljih načina da poboljšate svoje raspoređivanje i razvoj aplikacija. Slijedeći ove korake i dobre prakse, moći ćete da kreirate efikasne, sigurne slike spremne za upotrebu u proizvodnim okruženjima. Podijelite ovaj vodič i pomozite drugim korisnicima da koriste alat.