Curso Docker
Gestión de Contenedores en Docker
Los contenedores en Docker son instancias de imágenes que se ejecutan de manera independiente. A continuación, te explico los comandos más comunes para gestionar contenedores de forma clara y con ejemplos.
1. docker run <imagen>: Crear y ejecutar un nuevo contenedor
Este comando se utiliza para crear un contenedor y ejecutarlo. Docker descargará la imagen si no está disponible localmente.
Ejemplo:
1docker run nginx
Esto ejecuta un nuevo contenedor de nginx. Si es la primera vez que usas esa imagen, Docker la descargará de Docker Hub y luego la ejecutará.
Puedes agregar opciones, por ejemplo, para abrir puertos o ejecutar en segundo plano:
1docker run -d -p 8080:80 nginx
Esto ejecutará nginx en segundo plano (-d) y mapeará el puerto 80 del contenedor al puerto 8080 de tu máquina.
2. docker ps: Listar contenedores en ejecución
Este comando muestra solo los contenedores que están actualmente en ejecución.
Ejemplo:
1docker ps
Salida esperada:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 nginx "nginx -g 'daemon of…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp great_nginx
Aquí puedes ver el ID del contenedor, la imagen que está usando, su estado, y el puerto mapeado.
3. docker ps -a: Listar todos los contenedores (incluyendo los detenidos)
Este comando lista tanto los contenedores en ejecución como los que han sido detenidos.
Ejemplo:
1docker ps -a
Salida esperada:
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
a1b2c3d4e5f6 nginx "nginx -g 'daemon of…" 2 hours ago Exited (0) 5 minutes ago old_nginx
Aquí ves que el contenedor old_nginx fue detenido hace 5 minutos.
4. docker start <nombre_contenedor>: Iniciar un contenedor detenido
Este comando permite iniciar un contenedor que ya ha sido creado pero que está detenido.
Ejemplo:
1docker start old_nginx
Esto iniciará el contenedor llamado old_nginx, que se muestra en la lista de docker ps -a.
5. docker stop <nombre_contenedor>: Detener un contenedor en ejecución
Este comando detiene de manera controlada un contenedor en ejecución.
Ejemplo:
1docker stop great_nginx
Esto detendrá el contenedor great_nginx que estaba corriendo. Docker le da tiempo al contenedor para terminar las tareas antes de detenerlo.
6. docker restart <nombre_contenedor>: Reiniciar un contenedor
Este comando detiene y luego inicia de nuevo el contenedor.
Ejemplo:
1docker restart great_nginx
Esto reinicia el contenedor great_nginx. Puede ser útil si quieres refrescar la ejecución sin eliminar el contenedor.
7. docker kill <nombre_contenedor>: Terminar un contenedor inmediatamente
Este comando detiene inmediatamente el contenedor, sin darle tiempo para finalizar tareas.
Ejemplo:
1docker kill great_nginx
Esto forzará el contenedor a detenerse de inmediato.
8. docker rm <nombre_contenedor>: Eliminar un contenedor detenido
Este comando elimina completamente un contenedor que ya ha sido detenido.
Ejemplo:
1docker rm old_nginx
Esto eliminará el contenedor old_nginx. Si está en ejecución, primero tendrás que detenerlo con docker stop o usar docker rm -f para forzar su eliminación.
9. docker logs <nombre_contenedor>: Ver los logs de un contenedor
Este comando muestra los registros (logs) generados por el contenedor en ejecución o detenido.
Ejemplo:
1docker logs great_nginx
Verás la salida del contenedor great_nginx, como los accesos al servidor o mensajes de error.
10. docker exec -it <nombre_contenedor> <comando>: Ejecutar un comando dentro de un contenedor en ejecución
Permite ejecutar comandos dentro de un contenedor que ya está corriendo. La opción -it te da acceso interactivo.
Ejemplo:
1docker exec -it great_nginx /bin/bash
Esto te da una terminal interactiva dentro del contenedor great_nginx, donde puedes ejecutar comandos como si estuvieras dentro de la máquina.
11. docker attach <nombre_contenedor>: Conectarse a un contenedor en ejecución
Este comando te conecta a la salida estándar de un contenedor en ejecución. Es como ver en tiempo real lo que sucede dentro del contenedor.
Ejemplo:
1docker attach great_nginx
Esto te permitirá ver lo que está ocurriendo en great_nginx, como si estuvieras conectado directamente a su consola.
12. docker inspect <nombre_contenedor>: Obtener información detallada sobre un contenedor
Muestra información detallada sobre el contenedor, como su configuración, red, volúmenes, etc.
Ejemplo:
1docker inspect great_nginx
Este comando devolverá una gran cantidad de información en formato JSON, incluyendo configuraciones de red, volúmenes, puertos, etc.
Resumen
docker run: Crea y ejecuta un contenedor.docker ps: Lista los contenedores en ejecución.docker ps -a: Lista todos los contenedores, incluyendo los detenidos.docker start: Inicia un contenedor detenido.docker stop: Detiene un contenedor en ejecución.docker restart: Reinicia un contenedor.docker kill: Termina un contenedor inmediatamente.docker rm: Elimina un contenedor detenido.docker logs: Muestra los registros (logs) del contenedor.docker exec: Ejecuta un comando dentro de un contenedor.docker attach: Conéctate a un contenedor en ejecución.docker inspect: Obtén información detallada sobre un contenedor.
Estos comandos te permiten gestionar de manera eficiente los contenedores en Docker.
- Loading...
Muestra los contenedores que están actualmente en ejecución.
Loading...Muestra los contenedores en ejecución y los que han sido detenidos.
Loading...Tienes un contenedor de nginx parado. Tu tarea es volver a arrancarlo.
Loading...