• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

En Guillem, formación online

Aprende a aprender

  • Home
  • Cursos
  • blog
  • Tutoriales

Introducción a docker

octubre 17, 2021 by enguillem@gmail.com

Instalar docker en debian

Tutorial de instalación https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-debian-10

Crear y ejecutar un contenedor desde una imagen

docker run <nombre-de-la-imagen>

Ejemplo

docker run hello-world

Sobreescribir comando de una imagen

Para sobreescribir el comando inicial de una imagen lo hacemos con esta instrucción

docker run <nombre-de-la-imagen> comando
ejemplo
docker run busybox echo hola mundo

Podemos sobreescribir el comando por ejemplo con un ls

docker run busybox ls

En este caso podemos ver el contenido del sistema de ficheros de nuestro contenedor.

Si intentamos ejecutar los comandos sobre la imagen hello-world que hemos instalado al principio recibimos un error ya que ni echo ni ls estan instalador en la primera imagen

Listar contenedores en ejecución

Para listar los contenedores en ejecución lo hacemos tal como sigue:

docker ps (solamente los que están en ejecución)
docker ps -all (se ven todos los contenedores, aunque no estén en ejecución)

Ciclo de vida de un contenedor

Cuando ejectuamos un contenedor pasa lo siguiente:

docker run = docker create + docker start
crear un contenedor: docker create <nombre-de-la-imagen>
ejectuar un contenedor: docker start -a <id-del-contenedor>
creamos un contenedor y obtenemos la id
Ejecutamos la imagen con su id

Reiniciar contenedores apagados

Primero miramos que contenedores tenemos instalados con docker ps –all

Listado de contendores

Con el comando docker start -a <id> volvemos a ejecutar el contenedor apagado

En este caso no podemos sobreescribir el comando inicial.

Eliminar contendores apagados

Con docker system prune eliminamos los contenedores apagados

docker system prune

Logs de un contenedor

para obtener los logs de un contenedor:

docker logs <id-del-contenedor>
logs de un contendor

veamos otro ejemplo

Otro ejemplo con busybox

Detener contenedores

Primero creamos un contendor con busybox que no se va a detener

Para detenerlo tenemos dos opciones

docker stop <id-del-contendor> (termina el proceso de manera normal)
docker kill <id-del-contenedor> (no realiza ningún tipo de cierre)

Stop da tiempo para guardar cambios, encambio kill no hace ningún trabajo adicional.

Es mejor enviar la señal de stop

Contenedores multi-comando

Primero ejecutamos un contenedor de redis

docker run redis

Ahora tenemos que abrir un segundo terminal con un cliente de redis no podremos acceder ya que no estamos ejecutando el cliente dentro del contenedor.

Para ello debemos ejecutar el cliente dentro del mismo contenedor.

La estructura del comando sería la siguiente:

docker exec -it <id-del-contenedor> <comando>

Com docker ps -all vemos la id del contenedor

Ahora ejecutando docker exec -it <id> redis-cli el cliente de redis se ejecutaria dentro del contenedor.

Los comandos redis se ejecutarían en el contenedor

ejemplo redis en el contenedor

Si la opción -it no tenemos interactividad con el nuevo comando.

Como tener un intérprete de comandos en nuestro contenedor

Primero tenemos que obtener la id de nuestro contenedor redis con docker ps -all

Luego ejecutamos docker exe -it <id-contenedor> sh y obtenemos un shell para ejecutar comando.

Podríamos ejectuar el cliente de redis

y para salir haríamos Ctrl+c

Para salir del shell del contenedor hacemos exit

Iniciar con un shell

Para iniciar con un shell usemos el siguiente comando:

docker run -it busybox sh

Si se abren dos contenedores con este comando están aislados, son máquinas diferentes, a no ser que los conectemos de alguna forma.

Archivado en: docker

Footer

Design

With an emphasis on typography, white space, and mobile-optimized design, your website will look absolutely breathtaking.

Learn more about design.

Content

Our team will teach you the art of writing audience-focused content that will help you achieve the success you truly deserve.

Learn more about content.

Strategy

We help creative entrepreneurs build their digital business by focusing on three key elements of a successful online platform.

Learn more about strategy.

Copyright © 2022 · enguillem.com theme on Genesis Framework · WordPress · Iniciar sesión