Tutoriales y Manuales
Entradas Mensuales
-
▼
2025
(Total:
273
)
-
▼
febrero
(Total:
108
)
-
10 comandos esenciales en Docker
-
Microsoft presenta Phi-4-multimodal, su IA para pr...
-
NVIDIA Cuda
-
Clonación de llaves electrónicas permite robar veh...
-
GPU NVIDIA A100 para IA
-
Grupo Lazarus de Corea del Norte se hace con un bo...
-
OWASP Top 10 para aplicaciones de modelos de lengu...
-
En México usan citas falsas del SAT para propagar ...
-
Ciberataque en México: grupo de ransomware Lockbit...
-
Microsoft está probando una versión de Office para...
-
Los servicios de VPN podrían abandonar Francia si ...
-
Google presenta Gemini Code Assist, una IA gratuit...
-
Ella tiene un tórrido romance con ChatGPT
-
NVIDIA Tesla P40 en un ordenador personal para IA LLM
-
Hackean a Comisiones Obreras - CCOO y amenazan con...
-
Gmail reemplaza los SMS por códigos QR para aument...
-
Anthropic presenta Claude 3.7 Sonnet: la primera I...
-
Un banco Argentino deberá devolverle $140 millones...
-
RAID 10: la combinación de RAID entre espejo y str...
-
Elon Musk pide destruir la Estación Espacial Inter...
-
Detenido por hackear al Betis. Su objetivo: conseg...
-
El primer SSD PCIe Gen5 de Micron con una velocida...
-
Activación permanente de Windows y Office con una ...
-
Cloudflare emprende acciones legales contra LaLiga...
-
Microsoft presenta Muse, un modelo de IA generativ...
-
Ingeniería Social orientada a engañar usuarios par...
-
Vulnerabilidades de seguridad de OpenSSH hace que ...
-
DeepSeek-V3 vs DeepSeek-R1: cuáles son las diferen...
-
GPU: VRAM y FPS ¿Qué relación tienen en el rendimi...
-
PHP: mod_php vs CGI vs FastCGI vs FPM
-
RansomHub fue el principal grupo de ransomware de ...
-
Microsoft bloquea 7.000 ataques a contraseñas por ...
-
Trucos para Telegram
-
Vulnerabilidad crítica en FortiOS Security Fabric ...
-
Steam sufrió un ataque DDoS sin precedentes aunque...
-
Docker Desktop para Windows con WSL o Hyper-V
-
Filtración masiva de datos de IoT con 2.734 millon...
-
Guía de compra GPU - Nomenclatura Tarjetas Gráfica...
-
WhatsApp se integra con Instagram para mostrar enl...
-
Android System SafetyCore
-
Google usará la IA para conocer tu edad y modifica...
-
Apple soluciona una vulnerabilidad Zero-Day explot...
-
Ataques de phishing en imágenes SVG
-
¿Qué es la generación aumentada de recuperación (R...
-
Goku AI: la inteligencia artificial china de códig...
-
AMD prepara una Radeon RX 9070 XTX con 32 GB de me...
-
Tutorial: SSH en Windows (Servidor y Cliente)
-
Túnel TCP con Cloudflare Tunnel
-
"Cambio automático de contraseñas" en Google Chrom...
-
La Unión Europea busca movilizar 200.000 millones ...
-
Microsoft elimina una página de ayuda para desinst...
-
Cloudflare Tunnels
-
¿Qué es una shell inversa?
-
Le Chat, la IA más avanzada hecha en Europa
-
Google Gemini 2.0 Pro IA
-
ChatGPT en WhatsApp
-
Filtrados los datos personales de 3 millones de us...
-
Movistar España bloquea internet en un intento por...
-
Thunderbolt vs USB-C: qué son, diferencias y cómo ...
-
El Reino Unido ordena a Apple que le permita acced...
-
Inteligencia artificial en local en tu PC
-
Qué fuente de alimentación elegir según la tarjeta...
-
Tecnología RTX Neural de nvidia
-
Mizuno confirma ataque ransomware BianLian con fil...
-
Múltiples vulnerabilidades críticas en productos d...
-
WinScript permite personalizar, optimizar y config...
-
Cloudflare Turnstile: una nueva alternativa a reCA...
-
NanaZip 5.0: todas las novedades del mejor compres...
-
Barcelona Supercomputing Center (BSC) estrena prim...
-
Cisco corrige vulnerabilidades críticas de ISE que...
-
Logran ejecutar DOOM en un adaptador de Lightning ...
-
Aprovechan vulnerabilidad de IIS de hace 6 años pa...
-
Exingeniero de Google es acusado en EEUU de robar ...
-
Vulnerabilidad zero-day crítica en Android
-
Verificación de identidad o 'Identity check' : la ...
-
Europa quiere prohibir el envío de consolas a Rusi...
-
La Comisión Europea quiere acabar con la exención ...
-
DeepSeek: Una investigación revela a dónde van tus...
-
Google cambia las directrices de su IA y elimina u...
-
Detenido en Alicante 'Natohub,' de 18 años que hac...
-
Diferencias y velocidades entre PCIe Gen 4 y PCIe ...
-
OCuLink, el mejor conector para gráficas externas ...
-
Así es la pila atómica que ha presentado China cap...
-
Instalar DeepSeek en local en Android con Termux
-
Todos los modelos de IA de OpenAI
-
Las impresoras 3D en Estados Unidos podrían ser in...
-
El Pentágono bloquea DeepSeek en menos de una sema...
-
Limpieza y mantenimiento de una tarjeta gráfica
-
Conectores PCI Express x16, x8, x4 y x1: diferenci...
-
Reportan algunos problemas para las GeForce RTX 5090
-
Microsoft presenta el Surface USB4 Dock por 99$
-
NVIDIA Studio Voice convierte el mediocre micrófon...
-
OpenAI quiere diseñar robots humanoides impulsados...
-
Europa anuncia OpenEuroLLM, su plan para plantarle...
-
OpenAI quiere reemplazar los smartphones con un di...
-
Análisis de las principales vulnerabilidades explo...
-
WhatsApp detecta un ataque de spyware tipo Pegasus...
-
El coste real de DeepSeek no fue de 6 millones de ...
-
Windows Paint tendrá un botón de Copilot para acel...
-
Guía DeepSeek: funciones y cosas que puedes hacer ...
-
-
▼
febrero
(Total:
108
)
-
►
2024
(Total:
1110
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Gracias a un nuevo método de activación permanente, han conseguido eludir por completo el sistema de protección de derechos digitales (DRM) ...
-
Una semana para pagar el rescate. Ese es el plazo que ha dado al sindicato Comisiones Obreras el grupo Hunter International , una de las or...
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
10 comandos esenciales en Docker
Docker es básicamente una herramienta que ayuda a los ingenieros de datos a empaquetar, distribuir y ejecutar aplicaciones en un entorno coherente. En lugar de instalar cosas manualmente (y rezar para que funcione en todas partes), basta con empaquetar todo el proyecto (código, herramientas, dependencias) en entornos ligeros, portátiles y autosuficientes llamados contenedores
. Estos contenedores pueden ejecutar tu código en cualquier lugar, ya sea en tu portátil, en un servidor o en la nube. Por ejemplo, si tu proyecto necesita Python, Spark y un montón de librerías específicas, en lugar de instalarlas manualmente en cada máquina, puedes crear un contenedor Docker con todo preconfigurado.
- Imagen Docker: Una instantánea de un entorno con todas las dependencias instaladas.
- Contenedor Docker: Una instancia en ejecución de una imagen Docker.
- Dockerfile: Un script que define cómo debe construirse una imagen Docker.
- Docker Hub: Un registro público donde puedes encontrar y compartir imágenes Docker.
Antes de utilizar Docker, tendrás que instalar:
Docker Desktop: Descárgalo e instálalo desde la web oficial de Docker. Puede comprobar si está instalado correctamente ejecutando el siguiente comando:
docker --version
Visual Studio Code: Instálalo desde aquí y añade la extensión Docker para facilitar su gestión.
Estos son los comandos esenciales de Docker que todo ingeniero de datos debe conocer:
docker run
Qué hace: Crea e inicia un contenedor a partir de una imagen.
docker run -d --name postgres -e POSTGRES_PASSWORD=secret -v pgdata:/var/lib/postgresql/data postgres:15
Por qué es importante: Los ingenieros de datos suelen lanzar bases de datos, motores de procesamiento o servicios API. Las banderas del comando docker run son críticas:
- d: Ejecuta el contenedor en segundo plano (para que tu terminal no esté bloqueada).
- -name: Da nombre a tu contenedor. Deja de adivinar qué ID aleatorio es tu instancia Postgres.
- e: Establece variables de entorno (como contraseñas o configuraciones).
- p: Mapea puertos (por ejemplo, exponiendo el puerto 5432 de PostgreSQL).
- v: Monta volúmenes para persistir los datos más allá del ciclo de vida del contenedor.
Sin volúmenes, los datos de la base de datos desaparecerían cuando el contenedor se detuviera, un desastre para los procesos de producción.
docker build
Qué hace: Convierte tu Dockerfile en una imagen reutilizable.
# Dockerfile
FROM python:3.9-slim
RUN pip install pandas numpy apache-airflow
Ejemplo Comando:
docker build -t custom_airflow:latest .
Por qué es importante: Los ingenieros de datos a menudo necesitan imágenes personalizadas precargadas con herramientas como Airflow, PySpark o bibliotecas de aprendizaje automático. El comando docker build garantiza que los equipos utilicen entornos idénticos, eliminando los problemas de «funciona en mi máquina».
docker exec
Qué hace: ejecuta un comando dentro de un contenedor en ejecución.
docker exec -it postgres_db psql -U postgres # Acceder al shell PostgreSQL
Por qué es importante: Los ingenieros de datos usan esto para inspeccionar bases de datos, ejecutar consultas ad-hoc o probar scripts sin reiniciar los contenedores. La bandera -it le permite escribir comandos de forma interactiva (sin esto, usted está atascado en modo de sólo lectura).
docker logs
Qué hace: Muestra los registros de un contenedor.
docker logs --tail 100 -f airflow_scheduler # Transmite los últimos 100 registros
Por qué es importante: La depuración de tareas fallidas (por ejemplo, Airflow DAGs o trabajos de Spark) se basa en los registros. El indicador -f transmite los registros en tiempo real, lo que ayuda a diagnosticar problemas en tiempo de ejecución.
docker stats
Qué hace: Panel de control en tiempo real del uso de CPU, memoria y red de los contenedores.
docker stats postgres spark_master
Por qué es importante: La supervisión eficiente de los recursos es importante para mantener un rendimiento óptimo en las canalizaciones de datos. Por ejemplo, si una canalización de datos experimenta un procesamiento lento, la comprobación de las estadísticas de docker puede revelar si PostgreSQL está sobreutilizando los recursos de la CPU o si un trabajador de Spark está consumiendo demasiada memoria, lo que permite una optimización oportuna.
docker-compose up
Qué hace: Inicia aplicaciones multicontenedor usando un archivo docker-compose.yml.
# docker-compose.yml
services:
airflow:
image: apache/airflow:2.6.0
ports:
- «8080:8080»
postgres
image: postgres:14
volumes:
- pgdata:/var/lib/postgresql/data
docker-compose up -d
Por qué es importante: Las canalizaciones de datos a menudo implican servicios interconectados (por ejemplo, Airflow + PostgreSQL + Redis). Compose simplifica la definición y gestión de estas dependencias en un único archivo declarativo para que no tengas que ejecutar 10 comandos manualmente. La bandera d permite ejecutar contenedores en segundo plano (modo separado).
docker volume
Qué hace: Gestiona el almacenamiento persistente de los contenedores.
docker volume create etl_data
docker run -v etl_data:/data -d mi_etl_herramienta
Por qué es importante: Los volúmenes conservan datos críticos (por ejemplo, archivos CSV, tablas de bases de datos) incluso si los contenedores se bloquean. También se utilizan para compartir datos entre contenedores (por ejemplo, Spark y Hadoop).
docker pull
Qué hace: Descarga una imagen desde Docker Hub (u otro registro).
docker pull apache/spark:3.4.1 # Imagen pre-construida de Spark
Por qué es importante: Las imágenes precompiladas ahorran horas de configuración. Las imágenes oficiales para herramientas como Spark, Kafka o Jupyter se actualizan y optimizan regularmente.
docker stop / docker rm
Qué hace: Detiene y elimina contenedores.
docker stop airflow_worker && docker rm airflow_worker # Limpieza
Por qué es importante: Los ingenieros de datos prueban tuberías de forma iterativa. Detener y eliminar los contenedores antiguos evita fugas de recursos y mantiene los entornos limpios.
docker system prune
Qué hace: Limpia contenedores, imágenes y volúmenes no utilizados para liberar recursos.
docker system prune -a --volumes
Por qué es importante: Con el tiempo, los entornos Docker acumulan imágenes no utilizadas, contenedores detenidos y volúmenes colgantes (volumen Docker que ya no está asociado a ningún contenedor), lo que consume espacio en disco y ralentiza el rendimiento. Este comando recupera gigabytes tras semanas de pruebas.
- a: Elimina todas las imágenes no utilizadas
- -volumes: Elimina también los volúmenes (¡cuidado, esto puede eliminar datos!).
Dominar estos comandos de Docker permite a los ingenieros de datos desplegar canalizaciones reproducibles, agilizar la colaboración y solucionar problemas con eficacia.
Fuentes:
https://www.kdnuggets.com/10-essential-docker-commands-for-data-engineering
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.