El compañero reaccionó diciendo que el sistema no podía iniciar sesión en el entorno de prueba, comprobó decisivamente la monitorización y comprobó que el puerto de servicio estaba abierto, inició sesión en el servidor para comprobar el uso del disco duro y comprobó que el directorio montado en un determinado disco estaba lleno, como se muestra en la figura siguiente:
El disco es 100% el disco utilizado por la aplicación docker, y inicialmente se sospecha que la incapacidad para escribir archivos de registro impide que el módulo preste servicios al mundo exterior.
Busca archivos grandes y finalmente encuélralos en el subdirectorio /var/lib/docker/containers/Un archivo de json.log está ocupando 30G。
Limpieza de registros de contenedores en marcha (tratamiento de síntomas)
Para permitir que el recipiente sirva normalmente inmediatamente. Solución temporal, limpiar rápidamente esos archivos, liberar espacio en el disco duro, el script es el siguiente:
Si el contenedor docker está en funcionamiento, después de eliminar los logs usando rm -rf, verás que el espacio en disco no se libera mediante df -h. La razón es que en sistemas Linux o Unix, eliminar un archivo mediante rm-rf o un gestor de archivos lo desvinculará de la estructura de directorios del sistema de archivos. Si el archivo se abre (y hay un proceso en uso), el proceso seguirá pudiendo leer el archivo y el espacio en disco estará ocupado todo el tiempo. La postura correcta es cat /dev/null > *-json.log, y por supuesto también puedes reiniciar docker después de eliminarlo mediante rm -rf.
Comentario:Crea un nuevo script en el directorio del disco libre, de lo contrario el script no puede crearse normalmente。
Configuración del tamaño del registro del contenedor Docker (causa raíz)
Establezca el tamaño máximo logarítmico de un servicio de contenedor y añade un parámetro para establecer el tamaño logarítmic del contenedor al iniciar el contenedor, por ejemplo:
Tamaño máximo=500 m, lo que significa que el límite superior del tamaño de troncario de un contenedor es 500 m, max-file=3, lo que significa que un contenedor tiene tres logs, a saber, id+.json, id+1.json y id+2.json.
Docker migró a un nuevo disco
Los datos relacionados con Docker existen en el disco del sistema, el disco del sistema solo tiene un tamaño de 50G y el disco de datos 100G, ¿cómo mover los datos existentes de Docker al disco de datos?
Para docker instalado usando el método system yum de CentOS, el directorio de instalación por defecto debería ser: /var/lib/docker
Docker versión < v17.05.0
Como dockerd puede especificar la imagen y el camino de almacenamiento del contenedor a través del grafo de parámetros, como –graph=/var/lib/docker, solo necesitamos modificar el archivo de configuración para especificar los parámetros de arranque.
El archivo de configuración de Docker puede establecer la mayoría de los parámetros de proceso en segundo plano, y la ubicación de almacenamiento en cada sistema operativo es inconsistente, en Ubuntu: /etc/default/docker, y en CentOS: /etc/sysconfig/docker.
Docker versión >= v17.05.0
Como Docker ha eliminado oficialmente la función de grafo en esta versión, si tienes la versión de Docker >= v17.05.0 instalada en tu máquina, no puedes modificar el directorio de instalación (almacenamiento) por defecto de Docker especificando el parámetro de grafo en el archivo de configuración /etc/default/docker.
Existen otras formas en que la nueva versión de Docker puede lograr nuestro objetivo de modificar el directorio de instalación (almacenamiento): modificando (nuevo) /etc/docker/daemon.json para especificar el valor del parámetro raíz de datos.
Configuración del directorio del daemon Docker:El inicio de sesión del hipervínculo es visible.
Preparación para la migración: Detener todas las aplicaciones de contenedores y detener los servicios docker (systemctl stop docker).
Crea un nuevo directorio en /home/software con el siguiente comando:
Migra el directorio /var/lib/docker al directorio /home/software/docker (se recomienda copiarlo y luego eliminar el archivo de directorio /var/lib/docker cuando esté bien), el comando es el siguiente:
Al copiarAsegúrate de añadir el parámetro -a, si no, algunos contenedores no funcionarán correctamente!!!!!
Consulta todas las conexiones blandas y puntos de archivo en el directorio actual con el siguiente comando:
Modifica el archivo /etc/docker/daemon.json con el siguiente comando:
Guarda y luego inicia el servicio docker con el siguiente comando:
Arranca el contenedor, todas las pruebas funcionan con normalidad y, finalmente,Elimina la carpeta /var/lib/docker。
(Fin)
|