Introducción a las operaciones con contenedores
En la era actual de la tecnología, los contenedores se han consolidado como una herramienta esencial para el desarrollo, despliegue y administración de aplicaciones. Gracias a su eficiencia, portabilidad y consistencia, son la base de arquitecturas modernas como microservicios y plataformas de orquestación como Kubernetes.
Empezar a trabajar con contenedores puede parecer complejo, pero con un entendimiento sólido de sus operaciones básicas podrás aprovechar todo su potencial. En este artículo, desarrollado especialmente para la comunidad técnica de código6.com, exploraremos detalladamente cómo gestionar imágenes y contenedores, con ejemplos prácticos, consejos y buenas prácticas para dominar estos conceptos fundamentales.
¿Qué es una imagen y qué es un contenedor?
Diferenciando conceptos clave
Para entender la dinámica del ecosistema contenedorizado, es indispensable distinguir entre imagen y contenedor.
- Imagen: Es un archivo estático que contiene todo lo necesario para ejecutar una aplicación: código, librerías, dependencias y configuraciones. Se puede comparar con una plantilla o snapshot listo para instanciarse.
- Contenedor: Es la instancia en ejecución de una imagen, un proceso activo que utiliza recursos del sistema operativo y se comporta como una aplicación aislada.
Comprender esta relación es clave para gestionar correctamente el ciclo de vida de las aplicaciones en entornos contenedorizados.
Gestión de imágenes: descargando, subiendo y eliminando
¿Qué son y para qué sirven las imágenes?
Las imágenes son el punto de partida para crear contenedores. Antes de poder ejecutar una aplicación en un contenedor, debemos contar con su imagen disponible localmente. Estas imágenes generalmente se obtienen de registros públicos o privados, como Docker Hub.
Principales comandos para la gestión de imágenes
En sistemas como Docker (y otros compatibles como Podman), existen comandos esenciales para manejar imágenes:
docker pull <imagen>
: descarga una imagen desde un registro a tu máquina local.docker push <imagen>
: sube una imagen local a un registro para compartirla.docker rmi <imagen o ID>
: elimina una imagen del sistema local.docker images
: lista todas las imágenes descargadas en el equipo.
Ejemplo práctico de gestión de imágenes
Supongamos que queremos ejecutar un servidor NGINX en contenedor. Primero, debemos obtener la imagen oficial:
docker pull nginx
Una vez descargada, podemos verificar con :
docker images
Para eliminar la imagen cuando ya no sea necesaria:
docker rmi nginx
o también usando el ID abreviado que el sistema nos provea.
Buenas prácticas en gestión de imágenes
- Actualiza regularmente tus imágenes para incorporar parches y mejoras.
- Elimina imágenes obsoletas para liberar espacio en disco.
- Utiliza etiquetas específicas (tags) para controlar versiones y evitar ambigüedades.
Gestión de contenedores: creación, ejecución y control
Listado de comandos fundamentales para contenedores
Una vez tenemos la imagen, pasamos a gestionar los contenedores a partir de estas. Estos son los comandos básicos indispensables:

docker run <opciones> <imagen>
: crea y ejecuta un contenedor.docker ps
: lista los contenedores que actualmente están en ejecución.docker ps -a
: muestra todos los contenedores, incluyendo detenidos.docker stop <ID o nombre>
: detiene un contenedor de forma retratada y controlada.docker start <ID o nombre>
: inicia un contenedor que está detenido.docker kill <ID o nombre>
: mata un contenedor inmediatamente.docker rm <ID o nombre>
: elimina un contenedor detenido.
Ejecutando un contenedor: ejemplos y opciones
Para lanzar un contenedor con NGINX y observar los logs en la terminal:
docker run nginx
Este comando bloquea el terminal mostrando la salida del contenedor. Para liberar la terminal y ejecutar el contenedor en segundo plano:
docker run -d nginx
La opción -d
activa el modo detached, ideal para mantener la terminal disponible.
Control y monitoreo de contenedores en ejecución
Para ver los contenedores activos y sus detalles, utilizamos:
docker ps
Si queremos incluir asimismo los contenedores detenidos en la lista:
docker ps -a
Para detener un contenedor, obligatoriamente referenciado por su ID o nombre:
docker stop <ID>
La diferencia entre stop
y kill
radica en que stop
realiza un apagado ordenado, mientras que kill
termina el proceso de forma inmediata, pudiendo causar pérdida de datos o corrupción.
Mapeo de puertos: conectando contenedores con el exterior
Importancia del mapeo de puertos
Los contenedores tienen su propio espacio aislado y abren puertos internos para ofrecer servicios. No obstante, esos puertos no son accesibles desde el host a menos que se realice un mapeo explícito.
Cómo mapear puertos al ejecutar un contenedor
Para acceder a un servidor NGINX dentro de un contenedor desde el navegador del host, debemos mapear el puerto 80 del contenedor con uno en el equipo local:
docker run -d -p 8080:80 nginx
Así, al dirigirnos a localhost:8080
accedemos al servicio NGINX corriendo dentro del contenedor.
Visibilidad del mapeo de puertos en la lista de contenedores
Ejecutando docker ps
observamos una columna “Ports” que indica los puertos mapeados:

- Sin mapeo:
80/tcp
(solo interno) - Con mapeo:
0.0.0.0:8080->80/tcp
Esto es fundamental para planificar múltiples contenedores que usen el mismo puerto interno pero puertos externos diferentes.
Comprendiendo el ciclo de vida de un contenedor
De la imagen al contenedor: un proceso ordenado
Un ciclo típico inicia con la descarga de la imagen, posterior creación y ejecución del contenedor, seguida de su eventual parada y eliminación.
- Pull: Descarga de la imagen.
- Run: Creación y ejecución del contenedor.
- Stop: Parada ordenada.
- Start: Reinicio de contenedor detenido.
- Rm: Eliminación del contenedor.
Multiplicidad y aislamiento
De una misma imagen es posible ejecutar varios contenedores independientes, cada uno con su propio entorno y estado. Es habitual trabajar con múltiples instancias para balanceo de carga, escalabilidad o pruebas.
Tabla comparativa: Comandos clave para imágenes y contenedores
Tipo | Comando | Descripción | Ejemplo |
---|---|---|---|
Imagen | docker pull | Descargar una imagen desde un registro | docker pull nginx |
Imagen | docker push | Subir una imagen a un registro | docker push miusuario/miimagen |
Imagen | docker rmi | Eliminar una imagen local | docker rmi nginx |
Contenedor | docker run | Crear y ejecutar un contenedor | docker run -d -p 8080:80 nginx |
Contenedor | docker ps | Listar contenedores en ejecución | docker ps |
Contenedor | docker stop | Detener un contenedor | docker stop 95 |
Contenedor | docker start | Iniciar un contenedor detenido | docker start 95 |
Contenedor | docker kill | Matar un contenedor inmediatamente | docker kill 95 |
Contenedor | docker rm | Eliminar un contenedor detenido | docker rm 95 |
Consejos para un manejo eficiente y seguro de contenedores
- Siempre verifica el estado de los contenedores antes de eliminarlos para evitar pérdida de datos importantes.
- Prefiere
docker stop
antes quedocker kill
para garantizar una parada ordenada. - Usa etiquetas semánticas en imágenes para evitar confusiones y mantener versiones documentadas.
- Controla los puertos mapeados para evitar conflictos y asegurarte que servicios son accesibles como esperas.
- Utiliza nombres personalizados para contenedores para facilitar su identificación y gestión.
Palabras clave relacionadas y su relevancia
Docker
Docker es el motor de contenedores más popular y ampliamente adoptado. Dominar sus comandos básicos es fundamental para cualquier profesional que gestione contenedores. Docker simplifica la creación, ejecución y administración de imágenes y contenedores.
Contenedor
Es la unidad dinámica que ejecuta una aplicación encapsulada, permitiendo portabilidad y aislamiento. Entender su ciclo de vida y gestión evita errores comunes y permite aprovechar al máximo los recursos del sistema.
Imagen
La base para construir contenedores; una imagen bien diseñada asegura reproducibilidad y estabilidad. Su gestión eficiente facilita actualizaciones y despliegues continuos.
Mapeo de puertos
Clave para lograr que aplicaciones contenidas sean accesibles desde el exterior. Configurar correctamente el enrutamiento de puertos evita conflictos y problemas de acceso.
Docker Hub
Repositorio oficial donde encontrar imágenes preconstruidas. Saber cómo operar con registros y repositorios es vital para compartir y reutilizar imágenes.
Contenedor en modo Detached (-d)
Permite ejecutar contenedores en segundo plano, liberando la terminal y facilitando la gestión multitarea.
Docker Compose (relacionado)
Herramienta para definir y gestionar aplicaciones multicontenedor con un solo archivo, potenciando la orquestación simplificada.
Kubernetes (contexto avanzado)
Plataforma para orquestar múltiples contenedores en entornos productivos, gestionando escalabilidad, balanceo de carga y auto-recuperación.

Video recomendado para profundizar
Si quieres complementar esta guía con un recurso audiovisual práctico y sencillo, te invitamos a ver este video donde se explica paso a paso el flujo básico de trabajo con contenedores.
Preguntas frecuentes (FAQ)
¿Cómo gestionar un contenedor? ¿Cómo establecer una estrategia de gestión de contenedores?
La gestión de un contenedor implica crear, monitorear, detener, reiniciar y finalmente eliminar la instancia en base a necesidades operativas. Una estrategia eficaz considera automatización con herramientas de orquestación, identificación laboral clara mediante etiquetas y nombres, así como políticas de seguridad y actualización constante para evitar vulnerabilidades. El seguimiento mediante docker ps
y el mapeo correcto de puertos forman parte esencial para operaciones fluidas y controladas.
¿Qué son los contenedores en computación?
Los contenedores en computación son paquetes estandarizados que encapsulan una aplicación junto con todas sus dependencias. Esto garantiza que la aplicación pueda ejecutarse de forma consistente en cualquier entorno sin conflictos, facilitando despliegues portables y eficientes. Se diferencian de las máquinas virtuales por su ligereza y velocidad al compartir el kernel del sistema operativo.
¿Qué son las aplicaciones en contenedores?
Una aplicación en contenedores es un programa empaquetado dentro de un contenedor que normalmente ejecuta un solo proceso. Esto permite modularidad y escalabilidad, facilitando que cada componente de una aplicación compleja pueda gestionarse y desplegarse independientemente, apoyándose en herramientas como Kubernetes para su coordinación y administración.
¿Cómo recuperar un terminal bloqueado tras ejecutar un contenedor?
Si ejecutas un contenedor con docker run imagen
sin la opción detached, la terminal se queda bloqueada mostrando logs. La solución es abrir una nueva terminal para seguir trabajando o iniciar contenedores con docker run -d imagen
, que libera la terminal automáticamente.
¿Qué diferencia hay entre “docker stop” y “docker kill”?
docker stop
envía una señal para que el contenedor se apague ordenadamente, permitiendo que procesos internos finalicen adecuadamente. docker kill
termina el proceso inmediatamente, lo que puede provocar pérdida de datos o estados inconsistentes. Se recomienda usar “stop” salvo en casos donde el contenedor no responde.
¿Se pueden tener múltiples contenedores ejecutándose de la misma imagen?
Sí, es completamente posible y común ejecutar varias instancias (contenedores) a partir de la misma imagen, cada una aislada y con su ciclo de vida independiente. Para evitar conflictos, usualmente se mapean puertos distintos en el host para cada contenedor.
¿Qué debo hacer para acceder a un servicio dentro de un contenedor desde el navegador?
Debes mapear el puerto interno del contenedor al puerto del host usando la opción -p
. Por ejemplo, docker run -d -p 8080:80 nginx
conectará el puerto 80 interno con el puerto 8080 local, haciendo el servicio accesible vía http://localhost:8080
.
¿Cómo eliminar un contenedor y una imagen correctamente?
Primero, asegúrate que el contenedor esté detenido usando docker stop <ID>
. Luego, elimina el contenedor con docker rm <ID>
. Finalmente, si la imagen ya no se necesita, remuévela con docker rmi <imagen o ID>
. Es importante confirmar que ningún contenedor dependa de la imagen antes de borrarla para evitar errores.
Conclusión
Dominar las operaciones básicas con contenedores es el primer paso para implementar soluciones modernas, flexibles y escalables en tu entorno tecnológico. Desde la gestión de imágenes hasta la puesta en marcha y control de contenedores, este conocimiento te permitirá optimizar el desarrollo y despliegue de aplicaciones con eficiencia y seguridad.
¿Querés mantenerte actualizado con las últimas tendencias en automatización, inteligencia artificial y transformación digital? Visitá nuestro blog de Código6 y descubrí guías, casos de éxito y noticias relevantes para potenciar tu empresa. Ingresá al blog y explorá los recursos más recientes.

Leave A Comment