Docker 데몬 정지 - 컨테이너 상태 파일이 누락되었나요?

Docker 데몬 정지 - 컨테이너 상태 파일이 누락되었나요?

저는 AWS Linux에서 Docker 1.12.6을 실행하고 있습니다.

모든 docker명령이 정지됩니다.

오늘 아침에 AWS 인스턴스가 충돌했습니다(아직도 이유를 알 수 없음). 재부팅이 되지 않아 인스턴스를 중지했다가 시작했습니다. 내가 볼 때 /var/log/docker나는 얻는다 :

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"

컨테이너 디렉터리가 있지만 빈 init디렉터리만 포함되어 있습니다. 다른 컨테이너를 무작위로 검색해도 동일한 내용이 표시됩니다.

파일 누락으로 인해 중단이 발생했다고 가정합니다. 어떻게 회복하나요?

편집하다:

제거했다가 다시 설치했는데 다음 메시지가 나타납니다.

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

Docker 서비스를 시작했는데 이제 다시 중단되었습니다.

답변1

나는 내 것을 해결했다

  1. 서비스 도커 중지
  2. /var/run/docker로 이동하여 컨테이너 ID와 관련된 모든 디렉터리를 삭제합니다.
  3. /var/lib/docker로 이동하여 컨테이너 ID와 관련된 모든 디렉터리를 삭제합니다.
  4. 서비스 도커 시작

답변2

@Moreno의 답변은 약간의 변형으로 저에게 효과적이었습니다.

  • 도커 데몬 중지( sudo service docker stop)

  • Containerd에서 폴더를 삭제합니다(만약에 대비해 libconteinerd(/var/run/docker/libcontainerd/containerd)에서 동일한 이름의 폴더도 직접 삭제했습니다.

  • 도커 데몬 시작

답변3

나는 같은 문제에 직면했습니다. 이에 대해 상당한 시간을 보낸 후 이에 대한 해결책을 찾을 때까지 작동하는 이전 AMI로 롤백해야 했습니다. 최신 ECS 에이전트(1.13.1)가 며칠 전에 출시되었습니다. 이것이 우리의 문제인지 궁금합니다.

개요:

  • Docker 1.12.6
  • ECS Agent 1.13.1

인스턴스를 부팅하면 모든 docker명령이 중단됩니다. 쇼 확인 중 /var/log/docker:

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"

libcontainerd빈 디렉토리가 포함된 동일한 문제 init( state.json보이지 않습니다!)

답변4

같은 문제가 발생합니다. 인스턴스가 충돌했습니다(알 수 없는 이유). Docker 및 ECS 에이전트. 도커를 다시 설치해도 도움이 되지 않았습니다.

우리에게 도움이 된 것:

  • 도커를 수동으로 종료(PID 종료)
  • Containerd에서 폴더를 삭제합니다(만약에 대비해 libconteinerd(/var/run/docker/libcontainerd/containerd)에서 동일한 이름의 폴더도 직접 삭제했습니다.
  • 도커 다시 시작
  • EC 시작

여기에서 확인하세요: https://github.com/docker/docker/issues/30984

시스템이 다시 가동되고 실행됩니다.

관련 정보