Skip to content

Cum să construiești imagini Docker cu docker build

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să construiești imagini Docker cu docker build. We cover key concepts, practical examples, and best practices.

Vei învăța cum să construiești imagini Docker cu comanda docker build, folosind parametrii esențiali pentru etichetare, fișiere personalizate și reutilizare cache.

Problema

Construirea imaginilor Docker fără opțiunile corecte duce la imagini neetichetate, build-uri lente din cauza cache-ului necontrolat și dificultăți în gestionarea versiunilor.

Modul Greșit

docker build .

Imaginea rezultată nu are nume, nu poți controla versiunea și cache-ul poate masca probleme.

Modul Corect

docker build -t myapp:v1.0 -f Dockerfile.prod --no-cache .

Output:

[+] Building 15.2s (12/12) FINISHED
 => [internal] load build definition from Dockerfile.prod
 => [internal] load .dockerignore
 => [internal] load metadata for docker.io/library/node:18-alpine
 => [1/7] FROM node:18-alpine
 => [2/7] WORKDIR /app
 => [3/7] COPY package*.json ./
 => [4/7] RUN npm ci --only=production
 => [5/7] COPY . .
 => [6/7] RUN npm run build
 => [7/7] EXPOSE 3000
 => exporting to image
 => => naming to docker.io/library/myapp:v1.0

Pași Detaliați

1. Etichetează imaginea cu -t

Adaugă un nume și opțional o versiune (tag).

docker build -t nume-proiect:v1 .

2. Specifică fișierul Dockerfile cu -f

Folosește un fișier diferit de Dockerfile (ex: pentru medii diferite).

docker build -f Dockerfile.staging -t myapp:staging .

3. Forțează rebuild fără cache cu --no-cache

Ignoră straturile cache și reconstruiește totul de la zero.

docker build --no-cache -t myapp:latest .

Sfaturi de Prevenire

  • Folosește .dockerignore pentru a exclude fișiere inutile din contextul build-ului
  • Plasează instrucțiunile care se schimbă rar (instalare pachete) la începutul Dockerfile-ului
  • Etichetează imaginile cu numărul commit-ului Git pentru trasabilitate
  • Rulează docker build --no-cache periodic pentru a preveni straturi învechite

Greșeli Comune

  1. Context de build prea mare -- toate fișierele din director sunt trimise către Docker daemon
  2. Cache neresetat -- modificări în straturi timpurii nu sunt detectate
  3. Etichetă lipsă -- imaginea apare ca <none>:<none> în lista de imagini
  4. Dockerfile greșit -- calea către -f nu este corectă sau fișierul nu există
  5. Dependențe lipsă -- pachetele necesare nu sunt instalate în imagine

Întrebări Frecvente

### Ce face `--no-cache`?

Forțează Docker să reconstruiască toate straturile imaginii fără a folosi cache-ul existent.

De ce să folosesc un Dockerfile separat?

Pentru medii diferite (dev, staging, producție) cu configurații specifice fiecăruia.

Cum reduc dimensiunea imaginii?

Folosește imagini de bază lightweight (alpine), multi-stage builds și elimină fișierele temporare în aceeași instrucțiune RUN.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Docker pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro