# Docker: conceptos y primer contenedor explicado

- Link: https://sergiocaballero.com/docker-que-es-para-que-sirve/
- Published: 2026-10-17T06:48:54+00:00
- Author: Sergio Caballero

Índice de contenido

 1.   [Imagen, contenedor y registro](https://sergiocaballero.com/docker-que-es-para-que-sirve/#imagen_contenedor_y_registro)
 2.   [Primera prueba: una web local](https://sergiocaballero.com/docker-que-es-para-que-sirve/#primera_prueba_una_web_local)
 3.   [Qué significa publicar un puerto](https://sergiocaballero.com/docker-que-es-para-que-sirve/#que_significa_publicar_un_puerto)
 4.   [Detener, iniciar y eliminar](https://sergiocaballero.com/docker-que-es-para-que-sirve/#detener_iniciar_y_eliminar)
 5.   [Persistencia: la parte que suele causar pérdidas](https://sergiocaballero.com/docker-que-es-para-que-sirve/#persistencia_la_parte_que_suele_causar_perdidas)
 6.   [Docker frente a una máquina virtual](https://sergiocaballero.com/docker-que-es-para-que-sirve/#docker_frente_a_una_maquina_virtual)
 7.   [Cuándo conviene pasar a Compose](https://sergiocaballero.com/docker-que-es-para-que-sirve/#cuando_conviene_pasar_a_compose)
 8.   [Preguntas frecuentes](https://sergiocaballero.com/docker-que-es-para-que-sirve/#preguntas_frecuentes)
 9.   a.  [¿Un contenedor mantiene mis archivos al reiniciar?](https://sergiocaballero.com/docker-que-es-para-que-sirve/#un_contenedor_mantiene_mis_archivos_al_reiniciar_)
      b.  [¿Puedo usar cualquier imagen que encuentre?](https://sergiocaballero.com/docker-que-es-para-que-sirve/#puedo_usar_cualquier_imagen_que_encuentre_)
      c.  [¿Docker hace que mi aplicación sea segura?](https://sergiocaballero.com/docker-que-es-para-que-sirve/#docker_hace_que_mi_aplicacion_sea_segura_)
 10.  [En pocas palabras](https://sergiocaballero.com/docker-que-es-para-que-sirve/#en_pocas_palabras)
 11.  [Conclusión](https://sergiocaballero.com/docker-que-es-para-que-sirve/#conclusion)
 12.  [Fuentes y documentación](https://sergiocaballero.com/docker-que-es-para-que-sirve/#fuentes_y_documentacion)

Docker es una plataforma para construir y ejecutar aplicaciones en contenedores.
Una imagen reúne archivos y configuración; un contenedor es una instancia que se
ejecuta a partir de ella. Esta separación ayuda a recrear entornos y distribuir 
aplicaciones, pero no elimina por sí sola los problemas de seguridad, datos o compatibilidad.

Esta introducción está pensada para quien ya tiene Docker funcionando y quiere entender
los conceptos antes de copiar un archivo Compose de varias aplicaciones. Si aún 
no lo tienes en Ubuntu, empieza por la [instalación de Docker](https://sergiocaballero.com/como-instalar-docker-en-ubuntu-24/).

## Imagen, contenedor y registro

La imagen funciona como una base reutilizable. Puedes crear varios contenedores 
a partir de ella y cada uno tendrá su propia ejecución. Un registro almacena imágenes;
descargar una no significa que el servicio ya esté instalado como aplicación permanente
en tu sistema.

Las etiquetas, como stable o una versión mayor, pueden apuntar a nuevas revisiones
con el tiempo. Para reproducibilidad estricta se puede usar un digest. Esa fijación
también exige un proceso de actualización: conservar para siempre una versión vulnerable
no es mantenimiento.

## Primera prueba: una web local

El siguiente ejemplo ejecuta Nginx y publica el puerto 80 del contenedor en el 8080
de tu equipo. Se liga a loopback para que la demostración no pretenda abrir un sitio
público.

    ```wp-block-code
    docker run -d --name ejemplo-web \
      -p 127.0.0.1:8080:80 nginx:stable-alpine
    docker ps
    curl -I http://127.0.0.1:8080
    docker logs --tail 20 ejemplo-web
    ```

Una respuesta HTTP muestra que la petición llegó a un servidor. Comprueba además
que corresponde al contenedor correcto, especialmente si ya utilizas proxies o varios
servicios locales.

## Qué significa publicar un puerto

El proceso dentro del contenedor escucha en su propio entorno de red. La publicación
conecta una dirección y un puerto del host con un puerto del contenedor. EXPOSE 
en un Dockerfile documenta un puerto, pero no equivale a publicarlo.

No abras puertos de bases de datos por costumbre. Dos servicios en la misma red 
Docker pueden comunicarse por su nombre de servicio sin exponer la base a internet.
La aplicación pública y la base necesitan controles distintos.

## Detener, iniciar y eliminar

    ```wp-block-code
    docker stop ejemplo-web
    docker start ejemplo-web
    docker inspect ejemplo-web
    docker stop ejemplo-web
    docker rm ejemplo-web
    ```

Detener no elimina el contenedor. Eliminarlo sí descarta su capa de escritura. Antes
de borrar, distingue qué información vive en esa capa y cuál está guardada en un
volumen o en una carpeta del host.

## Persistencia: la parte que suele causar pérdidas

Un volumen conserva datos independientemente de un contenedor determinado. Un bind
mount utiliza una ruta del host. Ambos tienen implicaciones de permisos, respaldo
y portabilidad.

Si una base guarda información únicamente dentro de la capa del contenedor, recrearlo
puede perderla. Si utiliza un volumen, eliminar ese volumen también puede destruirla.
Lee las opciones de limpieza antes de usar comandos que borren recursos.

Un volumen no es un backup. Para datos importantes necesitas una copia consistente
fuera del entorno y un procedimiento de restauración que hayas comprobado.

## Docker frente a una máquina virtual

Los contenedores comparten aspectos del sistema anfitrión y no proporcionan exactamente
el mismo aislamiento que una máquina virtual. En Docker Desktop interviene además
una capa de virtualización para ejecutar contenedores Linux en otros sistemas.

La arquitectura de la imagen también importa. No asumas que un binario para amd64
correrá de forma nativa en arm64. La emulación puede ayudar en algunos escenarios,
con costos y limitaciones propios.

## Cuándo conviene pasar a Compose

Cuando una aplicación depende de varios servicios, Compose permite declarar configuración,
redes y volúmenes en archivos. Eso mejora la repetibilidad, pero no convierte automáticamente
el proyecto en una plataforma de alta disponibilidad.

Antes de añadir complejidad, aprende a identificar procesos, revisar logs, limitar
puertos y recuperar datos. Comprender esas piezas reduce la dependencia de tutoriales
que solo muestran un comando exitoso.

## Preguntas frecuentes

### ¿Un contenedor mantiene mis archivos al reiniciar?

Reiniciar el mismo contenedor y recrearlo son operaciones distintas. La persistencia
debe diseñarse con volúmenes o mounts apropiados y comprobarse antes de confiar 
datos reales.

### ¿Puedo usar cualquier imagen que encuentre?

Revisa procedencia, documentación, mantenimiento y arquitectura. Una imagen puede
ejecutar código con acceso a redes, archivos o credenciales que le hayas proporcionado.

### ¿Docker hace que mi aplicación sea segura?

No por sí solo. La seguridad también depende del código, las imágenes, los permisos,
los secretos, los puertos y el mantenimiento del host.

## En pocas palabras

Docker permite ejecutar aplicaciones con su entorno empaquetado en imágenes. Los
contenedores, las redes y los volúmenes cumplen funciones diferentes; entenderlas
evita confundir una prueba con un despliegue preparado.

## Conclusión

Repite el ejemplo, revisa sus puertos y conserva las instrucciones que permiten 
recrearlo. Después incorpora datos persistentes y una prueba de recuperación antes
de alojar información importante.

Para continuar, revisa [Cómo instalar Docker en Ubuntu 24.04: guía práctica paso a paso](https://sergiocaballero.com/como-instalar-docker-en-ubuntu-24/)
y [WordPress en Docker (ARM y x86): guía completa con docker-compose, Dockerfile y PHP.ini](https://sergiocaballero.com/wordpress-con-docker-compose-dockerfile/).

## Fuentes y documentación

[Documentación de docs.docker.com](https://docs.docker.com/get-started/docker-overview/).

[Documentación de docs.docker.com](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-a-container/).

### Comparte esto:

 * [  Facebook ](https://sergiocaballero.com/docker-que-es-para-que-sirve/?share=facebook)
 * [  X ](https://sergiocaballero.com/docker-que-es-para-que-sirve/?share=x)

### _Relacionado_
