도커는 되는데 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
뛰어난 글이네요, 감사합니다.