📝 BLOG

Docker والـ Containerization: المفاهيم básicos y el uso

Docker ي package las aplicaciones en contenedores para un deployment consistente y portátil. يغطي هذا الدليل fundamentals de Docker y escritura de Dockerfile y gestión de contenedores.

آخر تحديث:

إعداد: Gsetsoft

Docker والـ Containerization: المفاهيم básicos y el uso

ما هو Docker؟

Docker هو plataforma that empacqueta aplicaciones y sus dependencias en contenedores. contenedores son entornos de ejecución ligeros y aislados.

VM vs Container: máquinas virtuales ejecutan sistema operativo completo (GBs). contenedores comparten kernel del SO host y ocupan MBs.

Consistencia: resuelve problema 'funciona en mi máquina'. entornos de desarrollo، prueba y producción usan mismo contenedor.

Portabilidad: contenedores funcionan en cualquier plataforma compatible con Docker (Linux، Windows، Mac، cloud).

المفاهيم fundamentales de Docker

Image: plantilla para un contenedor. almacenada como capas de solo lectura. construida a partir de un Dockerfile.

Container: instancia en ejecución de una imagen. cada contenedor se ejecuta como un proceso aislado.

Dockerfile: archivo de texto que define cómo construir una imagen. contiene instrucciones como FROM، RUN، COPY، CMD.

Registry: repositorio que almacena y distribuye imágenes. Docker Hub es el registry público más popular.

Volume: almacenamiento usado para persistir datos del contenedor. los datos se conservan incluso si el contenedor se elimina.

escritura de Dockerfile

FROM node:18-alpine: use Node.js 18 (Alpine Linux) como imagen base. Alpine es una imagen base de tamaño pequeño.

WORKDIR /app: establezca el directorio de trabajo en /app. todos los comandos posteriores se ejecutan en este directorio.

COPY package*.json ./: copie package.json y package-lock.json. instale dependencias con RUN npm install.

COPY . .: copie todo el código fuente. cree el build de producción con RUN npm run build.

EXPOSE 3000: especifique que el contenedor escucha en el puerto 3000. defina el comando a ejecutar cuando el contenedor inicie con CMD ["npm"، "start"].

Comandos básicos de Docker

docker build -t myapp:1.0 .: construya la imagen desde Dockerfile. etiquete la imagen con nombre:versión usando -t.

docker run -p 3000:3000 myapp:1.0: ejecute el contenedor. mapee el puerto del host al puerto del contenedor con -p.

docker ps: liste los contenedores en ejecución. docker ps -a: liste todos los contenedores (incluyendo los detenidos).

docker stop <container_id>: detenga el contenedor. docker rm <container_id>: elimine el contenedor.

docker images: liste las imágenes locales. docker rmi <image_id>: elimine la imagen.

Docker Compose

Docker Compose es una herramienta para definir y gestionar aplicaciones multi-contenedor. configurado con archivo docker-compose.yml.

Servicios: cada servicio es un contenedor. defina servicios como web (frontend)، api (backend)، db (base de datos).

Volumes: defina volumes para persistencia de datos. networks: cree networks para comunicación entre servicios.

docker compose up: inicie todos los servicios. docker compose down: detenga y elimine todos los servicios.

docker compose up -d: ejecute en modo detached (segundo plano). docker compose logs -f: siga los logs.

Mejores prácticas

Imágenes pequeñas: use imágenes base Alpine o distroless. elimine dependencias de build de la imagen final con multi-stage build.

Layer caching: COPY dependencias (que cambian raramente) primero، código (que cambia frecuentemente) después. esto optimiza el build cache.

.dockerignore: ignore archivos innecesarios (node_modules، .git، logs). esto reduce el build context.

Seguridad: use usuario non-root en lugar de root. cree usuario con RUN adduser --disabled-password appuser.

Health check: use la instrucción HEALTHCHECK para realizar verificación de salud del contenedor. Docker reinicia automáticamente los contenedores unhealthy.

اختيار الخصوصية

تدعم ملفات الارتباط الأساسية الأمان والجلسات. نعد الزيارات الأساسية أيضًا؛ وبموافقتك نفعّل تحليلات استخدام إضافية. سياسة ملفات الارتباط