1. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 2. Docker: failed to start daemon: error while opening volume store metadata database: timeout

boingboing·2023년 7월 20일

도커는 되는데 docker ps가 안 됨

  • 도커 데몬이 실행이 안 된 상태..흠
  • 꺼졌다고 생각하고 도커를 재시작 함.
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl restart docker
> ```

-> 결과

docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since 목 2023-07-20 14:04:15 KST; 8s ago
Docs: https://docs.docker.com
Process: 4475 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 4475 (code=exited, status=1/FAILURE)

7월 20 14:04:14 mull dockerd[4475]: time="2023-07-20T14:04:14.883720516+09:00" level=warning msg="Your kernel does not support swap memory limit"
7월 20 14:04:14 mull dockerd[4475]: time="2023-07-20T14:04:14.883796609+09:00" level=warning msg="Your kernel does not support cgroup rt period"
7월 20 14:04:14 mull dockerd[4475]: time="2023-07-20T14:04:14.883816106+09:00" level=warning msg="Your kernel does not support cgroup rt runtime"
7월 20 14:04:14 mull dockerd[4475]: time="2023-07-20T14:04:14.884507902+09:00" level=info msg="Loading containers: start."
7월 20 14:04:15 mull dockerd[4475]: time="2023-07-20T14:04:15.821706324+09:00" level=info msg="stopping event stream following graceful shutdown" error="" module=l
7월 20 14:04:15 mull dockerd[4475]: Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER
7월 20 14:04:15 mull systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
7월 20 14:04:15 mull systemd[1]: Failed to start Docker Application Container Engine.
7월 20 14:04:15 mull systemd[1]: docker.service: Unit entered failed state.
7월 20 14:04:15 mull systemd[1]: docker.service: Failed with result 'exit-code'.


여전히 실행 안됨
  
설정파일을 찾으려고 

/etc/docker/daemon.js
  
를 보려는데 파일이 없음! -> 파일 생성해줌. 

https://stackoverflow.com/questions/44678725/cannot-connect-to-the-docker-daemon-at-unix-var-run-docker-sock-is-the-docker
  
  

sudo dockerd


-> 

Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found

NAT chain 을 만드는데 실패했다는데... Iptables가 발견되지 않았다고???


- 리눅스에서 docker는  iptables을 조작해서 네트워크 격리를 제공한다고 함.

- 기본적으로 docker는 DOCKER 와 DOCKER-USER라는 iptables 체인을 설치해서 들어오는 패킷이 항상 이 두 개 체인에 먼저 확인되도록 한다고 함.로컬에서만 쓸 건데 굳이 iptable이 필요있나 싶어서 daemon.json에서 iptables 설정을 변경해 줌.


  

{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"iptables":false,
"group":"docker",
"data-root":"/var/lib/docker"
}

  
이렇게 설정해 줌
  Docker: failed to start daemon: error while opening volume store metadata database: timeout

  에러 발생. 이 에러는 도커 instance가 두 개 있을 때 발생한다고 함-> 
  
   기존에 실행되어있던 docker을 끈 다음 (systemctl stop docker)

  dockerd를 직접 실행(sudo dockerd)->해결!!!!

  
  
  
 참고
  https://stackoverflow.com/questions/62080357/docker-failed-to-start-daemon-error-while-opening-volume-store-metadata-databa

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

뛰어난 글이네요, 감사합니다.

답글 달기