Comandos básicos de Docker: docker pull, docker run, docker ps, docker exec y docker logs
Hola, bienvenido. Con 5 comandos de Docker puedes hacer casi todo lo que necesitas en tu día a día: docker pull descarga una imagen, docker run crea y arranca un contenedor a partir de ella, docker ps lista los contenedores, docker logs enseña lo que han escrito y docker exec ejecuta un comando dentro de uno que ya está en marcha. Con docker stop y docker rm los paras y los borras.
En esta lección vamos a usarlos con las imágenes del curso, PHP y Nginx, y vamos a ver con un ejemplo real qué pasa con lo que escribes dentro de un contenedor cuando lo borras, que es la base para entender por qué existen los volúmenes.
Imagen y contenedor
Empezamos por la diferencia entre las 2 piezas con las que vamos a trabajar:
| Imagen | Contenedor | |
|---|---|---|
| Qué es | Una plantilla de solo lectura con un sistema mínimo y un programa instalado | Una imagen en marcha, con una capa propia donde puede escribir |
| Cómo se consigue | Con docker pull o construyéndola con docker build |
Con docker run |
| Cuántos hay | Una por cada versión que descargas | Tantos como quieras de la misma imagen |
| Si la borras | Vuelves a descargarla o a construirla | Pierdes todo lo que se escribió dentro |
Si vienes de la programación orientada a objetos, una imagen es como una clase y un contenedor es como un objeto: de la misma imagen de Nginx puedes arrancar 3 contenedores, cada uno con su configuración y sus archivos.
Vamos a descargar las 3 imágenes que vamos a usar en la primera sección del curso:
Cada una se descarga por capas, y al final Docker te dice qué ha bajado. Esta es la salida de la de Nginx en octubre de 2026; los identificadores de las capas y el Digest cambian cada vez que se publica una versión nueva de la imagen:
¿Cómo se lee un nombre como php:8.5-fpm-alpine? Antes de los 2 puntos va el repositorio, php, la imagen oficial de PHP en Docker Hub. Después va el tag, que en las imágenes oficiales suele juntar 3 cosas: la versión (8.5), la variante (fpm, que es PHP-FPM, frente a cli, que es PHP para la terminal) y el sistema base (alpine, una distribución de Linux muy pequeña). Con nginx:1.30-alpine y mysql:8.4 pasa lo mismo, y tienes todos los tags disponibles en la página de cada imagen en Docker Hub (se abre en una pestaña nueva).
¿Y por qué fijar la versión y no usar latest? Porque latest apunta a la última versión que publique el mantenedor de la imagen, sea cual sea. Si construyes tu proyecto con php:latest y meses después sale una versión mayor de PHP, el mismo Dockerfile te dará otra versión de PHP sin que hayas cambiado nada. Con 8.5 recibes las versiones de parche de la rama 8.5, pero el salto a la siguiente lo decides tú.
Para ver las imágenes que tienes descargadas:
La primera línea es la leyenda de la columna EXTRA, donde la U marca las imágenes que está usando algún contenedor. En este caso es la de hello-world, porque el contenedor de la lección anterior sigue ahí aunque ya terminó.
- 02Un contenedor que se ejecuta y desaparece
- 03Un contenedor en segundo plano
- 04Ver lo que pasa dentro: logs y exec
- 05Parar y borrar: lo que se pierde
¿Ya lo habías pedido o entras desde otro dispositivo? Escribe el mismo email: recuperas tu acceso y tu avance.
Al entrar desde el enlace te apuntamos a los avisos de cursos gratuitos. Te das de baja cuando quieras.
¿Ya tienes cuenta? Entra