Continuando nuestra serie de artículos sobre Docker (pueden ver nuestra introducción a Docker así como sus buenas prácticas), esta vez nos metemos de lleno con la columna vertebral del entorno: sus comandos.
Pensemos que estamos queriendo aprender un idioma, por ejemplo el francés. Para ello deberíamos aprender la estructura gramatical correctamente y saber cuando utilizar cada palabra acorde al contexto entre otros mil detalles. Pero si has viajado a otro país sabes que realmente se necesitan unas pocas palabras clave para realmente hacernos entender.
Lo mismo sucede en Docker. Podríamos intentar navegar por las miles de páginas de documentación pero sería poco práctico. Docker dispone de cientos de comandos pero continuando con la alegoría lingüística, al final solo necesitamos unos pocos para poder comunicarnos rápidamente.
¡A no olvidar!
Lo primero que siempre debemos tener en cuenta es sobre qué elemento estamos trabajando. Lo más utilizado en el día a día casi siempre es una imagen, un volumen, una red o un contenedor ya sea activo o inactivo .
Hace un tiempo Docker se dio cuenta de que la cantidad de comandos se les estaba yendo de la mano e implementó unos comandos globales.
Los comandos globales más utilizados son:
- container: Nos permite trabajar con contenedores.
- image: Nos permite trabajar con imágenes.
- volume: Nos permite trabajar con volúmenes y persistencia.
- network: Nos permite trabajar con redes.
Existen muchísimas más opciones como node, secret, swarm, entre otras.
Pueden ver el listado completo accediendo a la ayuda con: docker help.
¡Aquí la sintaxis es fácil!
En todos los casos utilizaremos la palabra docker seguida del comando global, luego el comando específico y finalmente el o los parámetros deseados:
La sintaxis clásica quedaría asi:
docker (comando global) (comando específico) (parámetro/s)
Por ejemplo para listar todos los contenedores activos e inactivos utilizaríamos:
docker container ls -a
A continuación veremos los comandos más utilizados en cada categoría:
Comandos generales
docker version – Nos da información sobre la versión tanto del cliente como del servidor.
docker login – Nos permite loguearnos a Docker Hub.
docker logout – Nos permite desloguearnos de Docker Hub.
docker system prune – Elimina todos los contenedores frenados, redes inactivas e imágenes intermedias que ya no se precisan.
Contenedores
create – Nos permite crear un nuevo contenedor basado en una imagen.
start – Inicializa un contenedor ya existente.
run – Crea un contenedor y luego lo inicia.
ls – Lista todos los contenedores activos.
inspect – Nos da información más exhaustiva de un contenedor.
logs – Lista los logs de un contenedor específico.
stop – Frena un contenedor activo.
rm – Elimina un contenedor frenado.
Por ejemplo podríamos inspeccionar un contenedor con:
docker container inspect (nombre contenedor)
Imágenes
build – Crea una imagen basada en un archivo Dockerfile.
push – Sube una imagen al repositorio.
tag – Nos permite asignar una etiqueta a la imagen.
ls – Lista todas las imágenes descargadas actualmente.
inspect – Nos da información más exhaustiva de una imagen, incluyendo sus capas.
rm – Elimina una imagen del sistema.
Por ejemplo podríamos eliminar una imágen con:
docker image rm (nombre imágen)
Redes y Volúmenes
La mayoría de los comandos anteriores son aplicables tanto a las redes como a los volúmenes. Por ejemplo:
ls
rm
create
inspect
prune
Por ejemplo podríamos crear una nueva red con:
docker network create (nombre red)
Ahora a practicar!
Ahora ya no tienes excusa para animarte a jugar con la consola y aprender sin miedo a crear contenedores de tus imágenes favoritas o incluso de tus propios proyectos.
Desde Abatic seguiremos profundizando y generando nuevo contenido para que estés siempre al día con todo lo referido a Docker y contenedores, así como metodologías actuales y buenas prácticas.
Y no dudes en ponerte en contacto con nosotros ante cualquier duda o consulta a través de nuestro formulario de contacto de Abatic. Estaremos encantados de ayudarte.
Deja una respuesta