O colega reagiu ao fato de que o sistema não conseguia fazer login no ambiente de teste, verificou decisivamente o monitoramento e verificou que a porta de serviço estava aberta, fez login no servidor para verificar o uso do disco rígido e constatou que o diretório montado em determinado disco estava cheio, como mostrado na figura abaixo:
O disco é 100% o disco usado pela aplicação docker, e inicialmente suspeita-se que a incapacidade de gravar arquivos de log impede o módulo de fornecer serviços ao mundo exterior.
Procure arquivos grandes e finalmente localize-os no subdiretório /var/lib/docker/containers/Um certo arquivo json.log está ocupando 30G。
Limpeza Registros de Contêineres (Tratamento de Sintomas)
Para permitir que o recipiente sirva normalmente imediatamente. Solução temporária: limpar rapidamente esses arquivos, liberar espaço no disco rígido, o script é o seguinte:
Se o container docker estiver rodando, depois de deletar os logs usando rm -rf, você verá que o espaço em disco não é liberado via df -h. O motivo é que, em sistemas Linux ou Unix, deletar um arquivo via rm-rf ou gerenciador de arquivos o desvincula da estrutura de diretórios do sistema de arquivos. Se o arquivo for aberto (e houver um processo em uso), o processo ainda poderá ler o arquivo e o espaço em disco será ocupado o tempo todo. A postura correta é cat /dev/null > *-json.log, e claro que você também pode reiniciar o docker depois de removê-lo via rm -rf.
Comentário:Crie um novo script no diretório do disco livre, caso contrário o script não pode ser criado normalmente。
Definindo o tamanho do log do container Docker (causa raiz)
Defina o tamanho máximo logaritário de um serviço de contêiner, e adicione um parâmetro para definir o tamanho logarítmico do contêiner ao iniciar o contêiner, por exemplo:
Tamanho máximo=500M, o que significa que o limite superior do tamanho do tronco de um contêiner é 500M, max-file=3, o que significa que um contêiner tem três logs, a saber: id+.json, id+1.json e id+2.json.
O Docker migrou para um novo disco
Existem dados relacionados ao Docker no disco do sistema, o disco do sistema tem apenas 50G de tamanho, e o disco de dados tem 100G, como transferir os dados existentes do Docker para o disco de dados?
Para docker instalado usando o método yum do sistema CentOS, o diretório padrão de instalação deve ser: /var/lib/docker
Docker versão < v17.05.0
Como o dockerd pode especificar o caminho de armazenamento da imagem e do contêiner através do grafo de parâmetros, como –graph=/var/lib/docker, só precisamos modificar o arquivo de configuração para especificar os parâmetros de inicialização.
O arquivo de configuração do Docker pode definir a maioria dos parâmetros do processo em segundo plano, e a localização de armazenamento em cada sistema operacional é inconsistente, no Ubuntu: /etc/default/docker, e no CentOS: /etc/sysconfig/docker.
Docker versão >= v17.05.0
Como o Docker oficialmente descontinuou o recurso de grafo nesta versão, se você tiver a versão do Docker >= v17.05.0 instalada na sua máquina, não pode modificar o diretório padrão de instalação (armazenamento) do Docker especificando o parâmetro do grafo no arquivo de configuração /etc/default/docker.
Existem outras maneiras pelas quais a nova versão do Docker pode alcançar nosso objetivo de modificar o diretório de instalação (armazenamento): modificando (novo) /etc/docker/daemon.json para especificar o valor do parâmetro raiz de dados.
Configuração do diretório do daemon Docker:O login do hiperlink está visível.
Preparação para migração: Pare todas as aplicações de contêineres e pare os serviços docker (systemctl stop docker).
Crie um novo diretório em /home/software com o seguinte comando:
Migre o diretório /var/lib/docker para o diretório /home/software/docker (recomenda-se copiá-lo e depois excluir o arquivo do diretório /var/lib/docker quando estiver tudo certo), o comando é o seguinte:
Ao copiarCertifique-se de adicionar o parâmetro -a, caso contrário alguns recipientes não funcionarão corretamente!!!!!
Visualize todas as conexões soft e pontos de arquivo no diretório atual com o seguinte comando:
Modifique o arquivo /etc/docker/daemon.json com o seguinte comando:
Salve e então inicie o serviço docker com o seguinte comando:
Inicie o contêiner, os testes estão rodando normalmente e, finalmente,Exclua a pasta /var/lib/docker。
(Fim)
|