Este tutorial asume que tiene una buena comprensión de las partes principales de Estibador, ha configurado Docker y tiene algunos conocimientos sobre imágenes y contenedores.
Iniciar y detener contenedores es diferente de detener y reanudar procesos normales. Una parada de proceso no detiene el proceso, hace que el proceso se cierre. Docker ps no devuelve un contenedor detenido.
Para detener un contenedor, use el comando docker stop y pase el nombre del contenedor y la cantidad de segundos antes de que se elimine un contenedor. El número predeterminado de segundos que esperará el comando antes de la matanza es de 10 segundos.
Antes de demostrar cómo matar un contenedor, verifiquemos si hay contenedores en ejecución. El siguiente comando hará eso.
Usando el comando sudo docker ps
sudo docker ps
El comando docker ps devuelve una lista de todos los contenedores en ejecución, de nuestra salida anterior no tenemos ningún contenedor en ejecución. En el tutorial aprender a usar imágenes, demostramos cómo buscar y descargar imágenes desde el centro de Docker.
Descargamos una imagen de WordPress que podemos usar para crear un contenedor. Comencemos un contenedor usando la imagen de WordPress con el siguiente comando.
sudo docker create --name firstkill bitnami/wordpress
Después de comenzar el uso del contenedor sudo docker ps -a
comando para devolver todos los contenedores.
En la salida anterior, podemos ver el contenedor que hemos creado. Algo a tener en cuenta sobre Docker es que todos los contenedores que se estaban ejecutando en el momento del cierre se reiniciarán al reiniciar.
Usamos el comando run para ejecutar nuestro contenedor pasando el ID devuelto por docker ps -a para que se ejecute como se muestra a continuación.
sudo docker run fe1f71042611
Utilizar docker ps
para devolver solo los contenedores que se están ejecutando.
De la salida anterior, nuestro contenedor muestra su estado como salido. Cuando un contenedor sale con el código 0, no hay errores.
Debido a que los contenedores son como cualquier otro proceso Unix, podemos interactuar con ellos a través de señales Unix. Por ejemplo, especificar el número de segundos antes de que se elimine un contenedor es un ejemplo de una señal. Una salida de proceso normal recibe una señal SIGTERM. Cuando se envía una señal SIGTERM pero no existe un proceso dentro del tiempo especificado, se envía una señal SIGKILL.
Cuando no necesite un contenedor momentáneamente para realizar funciones administrativas, es conveniente hacer una pausa que no sea detener contenedores. La pausa de los contenedores depende del congelador de cgroups, que bloquea la programación de los contenedores congelados.
Una diferencia clave entre pausar y detener contenedores está en la persistencia del estado. Cuando se detiene un contenedor, todos los recursos asignados a él, como la memoria, se liberan mientras que un contenedor en pausa no libera sus recursos asignados.
Los siguientes comandos inician nuestro contenedor firstkill, lo pausan y verifican su estado. Utilice el ID de contenedor devuelto por sudo docker ps -a
.
sudo docker run fe1f71042611 sudo docker pause fe1f71042611 sudo docker ps -a
Las acciones de crear y manipular contenedores dan como resultado muchas capas de imágenes y carpetas específicas de contenedores. Limpiar estos recursos es importante. En la siguiente sección, veremos cómo puede eliminar imágenes y contenedores.
Para eliminar un contenedor, pase el ID del contenedor al comando docker rm
. Las imágenes de el comando docker devuelve una lista de todas las imágenes en su host. Para eliminar una imagen, pase el ID devuelto por las imágenes de docker al comando docker rmi
.
A continuación, se muestra un ejemplo de cómo eliminar una imagen.
sudo docker images sudo docker rmi
Nuestro intento de eliminar la imagen de helloworld anterior falló porque hay un contenedor en ejecución basado en la imagen. Siempre debemos eliminar un contenedor antes de poder eliminar una imagen.
El error le da la identificación del contenedor, lo que facilita la extracción del contenedor. Quitemos el contenedor, luego quitamos la imagen.
En este tutorial, discutimos la diferencia entre procesos normales y contenedores Docker. Discutimos cómo detener un contenedor en ejecución. También discutimos cómo eliminar un contenedor en ejecución.
Gracias por llegar hasta el final.
Añadir comentario