
저는 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
나는 내 것을 해결했다
- 서비스 도커 중지
- /var/run/docker로 이동하여 컨테이너 ID와 관련된 모든 디렉터리를 삭제합니다.
- /var/lib/docker로 이동하여 컨테이너 ID와 관련된 모든 디렉터리를 삭제합니다.
- 서비스 도커 시작
답변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
시스템이 다시 가동되고 실행됩니다.