Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
unix:///var/run/docker.sock
에 있는 docker daemon에 연결할 수 없으므로 docker daemon이 돌고있는지 물어보고 있다docker.sock
의 역할은 무엇일까?docker.sock
에 대해 설명하기 이전에 dockerd
에 대해 먼저 설명하고 있다. 그렇다면 먼저 dockerd의 이해가 바탕이 되야 함을 알 수 있다.그렇다면 **`dockerd`**는 무엇일까?
dockerd is the persistent process that manages containers
dockerd
를 실행하기 위해서는 터미널에서 dockerd
를 입력하면 된다.docker ps
와 같은 커멘드를 실행하면 잘 돌아 가는 것을 알 수 있다.unix:///var/run/docker.sock
와 dockerd
의 관계는 무엇일까?The Docker daemon can listen for Docker Engine API requests via three different types of Socket: unix, tcp, and fd.
root
권한에서/var/run/docker.sock
에서 생성된 unix
도메인 소켓이다.unix:///var/run/docker.sock
은 unix 컴퓨터와 통신을 하기위한 소켓의 위치를 말한다.unix
도메인 소켓이 연결되어 있으므로 dockerd -H /var/run/docker.sock
을 실행하게 되면 dockerd
와 같이 docker daemon이 잘 돌아가는 것을 알 수 있다.docker --help
로 검색하면 -H, --host list Daemon socket(s) to connect to (default )
unix
도메인 소켓이므로 dockerd
만 입력해도 똑같은 결과를 얻을 수 있게 된다.dockerd
를 매번 실행하기는 번거러우니 아래 두 라인을 도커 설치 이후 입력하면 편할 것이다.systemctl start docker
systemctl enable docker
systemctl start docker
dockerd
와 같지만 로그없이 실행한다고 보면 편하다systemctl enable docker
오타 및 잘못된 부분의 지적 등은 언제든지 환영합니다.🙋🏻♂️
mac을 사용하고있지만, 따로 설정하지 않은 상태에서 systemctl를 치면, command not found가 뜨네요..
brew로 설치했더니 해당이슈가있었고, internet의 설치파일로 새로 설치하니 잘 동작했습니다!
안녕하세요! 같은 오류가 나서 첫번째 오류를 입력하였으나
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
이라는 오류메세지가 출력됩니다 ㅠㅠ 왜 그런지 아시나요?
안녕하세요! 너무 잘 읽었어요. 그런데 첫줄 입력하자 zsh: command not found: systemctl 라는 문구가 뜨는데 혹시 왜 그런지 아시나요?