Daemon do Docker suspenso - arquivo de estado do contêiner ausente?

Daemon do Docker suspenso - arquivo de estado do contêiner ausente?

Estou executando o Docker 1.12.6 no AWS Linux.

Todos dockeros comandos travam.

A instância da AWS travou esta manhã (ainda não sei por quê). A reinicialização não funcionou, então parei e iniciei a instância. Quando eu visualizo, /var/log/dockerrecebo:

time="2017-01-16T10:46:18.829402768Z" level=info msg="libcontainerd: new containerd process, pid: 21697" 
time="2017-01-16T10:46:18.833508272Z" level=fatal msg="open /var/run/docker/libcontainerd/containerd/054f92393f757e0418b014ed1fa35673fbce2293de43e42153f4e10ec4910c77/state.json: no such file or directory"

O diretório do contêiner existe, mas contém apenas um initdiretório vazio. Uma pesquisa aleatória nos outros contêineres mostra a mesma coisa.

Presumo que o arquivo ausente esteja causando o travamento. Como faço para me recuperar?

Editar:

Acabei removendo e reinstalando, recebi a mensagem:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Iniciou o serviço Docker, agora está travando novamente.

Responder1

Eu resolvi o meu

  1. parada de janela de serviço
  2. Vá para /var/run/docker e exclua qualquer diretório relacionado ao ID do contêiner
  3. Vá para /var/lib/docker e exclua qualquer diretório relacionado ao ID do contêiner
  4. início da janela de encaixe de serviço

Responder2

A resposta de @Moreno funcionou para mim com uma pequena diferença:

  • pare o daemon docker ( sudo service docker stop)

  • Exclua as pastas no containerd (por precaução, também excluímos as pastas com o mesmo nome diretamente na libconteinerd (/var/run/docker/libcontainerd/containerd)

  • inicie o daemon do docker

Responder3

Eu me deparei com o mesmo problema. Depois de gastar bastante tempo nisso, tive que reverter para AMIs mais antigas que funcionam até encontrar uma solução para isso. O agente ECS mais recente (1.13.1) foi lançado há alguns dias - estou me perguntando se esse pode ser o nosso problema.

Visão geral:

  • Docker 1.12.6
  • ECS Agent 1.13.1

Na inicialização da instância, todos dockeros comandos são interrompidos. Verificando /var/log/dockerprogramas:

level=info msg="libcontainerd: new containerd process, pid: 21687" 
level=fatal msg="open /var/run/docker/libcontainerd/containerd/{{CONTAINER_HASH}}/state.json: no such file or directory"

O mesmo problema onde contém um diretório libcontainerdvazio (não para ser visto!)initstate.json

Responder4

Encontre o mesmo problema. A instância travou (motivo desconhecido). Agente Docker e ECS. A reinstalação do docker não ajudou.

O que funcionou para nós:

  • Mate o docker manualmente (matar pid)
  • Exclua as pastas no containerd (por precaução, também excluímos as pastas com o mesmo nome diretamente na libconteinerd (/var/run/docker/libcontainerd/containerd)
  • Reinicie a janela de encaixe
  • Iniciar EC

Visto aqui: https://github.com/docker/docker/issues/30984

Sistema instalado e funcionando novamente.

informação relacionada