Docker pentru utilizatori de Windows

Configurare noua (How To)

Situatie

Docker a devenit standardul de facto pentru rularea aplicațiilor containerizate – în dezvoltare, testare sau producție. Timp de ani de zile, rularea Docker pe Windows a implicat configurări complicate, integrare prin Hyper-V sau VirtualBox, și o performanță suboptimală.

În 2025, datorită progreselor aduse de WSL2, rularea containerelor Docker pe Windows este mai rapidă, mai ușoară și mai eficientă ca niciodată – fără mașini virtuale greoaie și cu integrare completă în sistemul de operare.

Solutie

1. Ce este Docker și cum funcționează în Windows 11 (WSL2)

Docker – pe scurt:

  • Rulează aplicații izolate în containere, fiecare cu propriul filesystem și dependințe

  • Nu este o mașină virtuală – consumă mult mai puține resurse

  • Ușor de automatizat și replicat (via Dockerfiles și Compose)

Arhitectura pe Windows 11:

Componentă Rol
WSL2 backend Subsistemul care rulează Linux în Windows
Docker Engine Rulează în WSL2, în mod complet nativ (nu mai este VM separată)
Docker Desktop Interfață grafică + management + integrare cu Windows filesystem

Pas 1 – Activează WSL2 (dacă nu ai făcut-o deja)

bash
wsl --install

Pas 2 – Instalează Docker Desktop

  1. Mergi la https://www.docker.com/products/docker-desktop/

  2. Descarcă și instalează versiunea pentru Windows

  3. În timpul instalării, alege opțiunea:
    ✅ „Use the WSL 2 based engine”

Pas 3 – Verifică instalarea

După instalare și restart:

bash
docker version
docker info

3. Primul container – exemplu rapid

Hello World

bash
docker run hello-world

Docker va descărca imaginea, o va rula într-un container izolat și îți va afișa un mesaj de confirmare.

Container NGINX expus pe port 8080

bash
docker run -d -p 8080:80 --name web nginx

Apoi accesează în browser:

arduino
http://localhost:8080

Containerul NGINX servește pagini din /usr/share/nginx/html. Poți monta un volum pentru conținut personalizat.

4. Lucrezi cu containere și volume

Listează containerele active:

bash
docker ps

Oprește un container:

bash
docker stop web

Șterge-l complet:

bash
docker rm web

Montează un director local (Windows):

bash
docker run -d -p 8080:80 -v C:/Users/Nume/site:/usr/share/nginx/html nginx

Volumul montat face legătura între fișierele tale din Windows și containerul Docker.

5. Creează un container personalizat – Dockerfile

Exemplu: server Node.js simplu

Dockerfile:

dockerfile
FROM node:20
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]

Comenzi de build & run:

bash
docker build -t my-node-app .
docker run -p 3000:3000 my-node-app

Apoi accesezi aplicația pe:

arduino
http://localhost:3000

6. Docker Compose – multi-container orchestration

Exemplu setup: app + baza de date

docker-compose.yml:

yaml
version: '3.9'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: secret
app:
build: .
ports:
- "3000:3000"
depends_on:
- db

Rulează tot stack-ul:

bash
docker compose up

Compose lansează automat toate serviciile definite, le conectează între ele și gestionează dependențele.

7. Integrare cu VS Code – dezvoltare direct din containere

Instalează extensia: Remote – Containers

Aceasta îți permite să:

  • Deschizi un folder dintr-un container

  • Lucrezi cu fișierele ca și cum ar fi locale

  • Ai completări, debugging și terminal Linux complet funcțional

Exemplu:

bash
code .

într-un folder cu .devcontainer/devcontainer.json.

8. Docker vs. VM – performanță și consum de resurse

Funcționalitate Docker (WSL2) Mașină virtuală (Hyper-V, VMware)
Timp pornire container < 1 sec ~10–30 sec
Consum RAM Minimal (partajat) Ridicat (sistem complet separat)
Acces fișiere host Direct /mnt/c/ Limitat, prin folder sharing
Suport GPU (WSL2) Depinde de hypervisor
  • Dezvoltare backend (Node.js, Python, Go etc.)

  • Testare rapidă a aplicațiilor în medii izolate

  • Servicii de tip CI/CD local (GitLab Runner, Jenkins)

  • Aplicații full-stack cu baze de date (PostgreSQL, Redis etc.).

Tip solutie

Permanent

Voteaza

(4 din 8 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?