p. 340
Docker daemon 에게 Cli 가 명령을 전달하기 위해 통신할 때는 Unix 소캣 을 사용하는데, 이때 사용하는 Unix 소캣이 docker.sock 이다
- 이 파일 안에는 daemon 과 통신한 Data 가 저장되있다
- 해당 파일을 통해 통신 Data 를 기반으로 Docker 모니터링이 가능하다
- docker.sock 는 Docker API의 주요 진입 점으로 Docker cli 클라이언트는 이 소캣을 사용하여 Docker 명령을 전달하여 명령을 실행하게 한다. 보안상의 이유로 기본적으로 UNIX 소캣을 사용한다
이를 이용해 간단하게 현재 local Docker Data 를 Monitering 해보자
docker.sock 는 Cli 클라이언트와 Docker daemon 사이의 통신 Data 만을 담고 있으므로, Docker 내부 ( containerd 밑의 정보 ) 의 Data 는 담겨있지 않다. 따라서 portainer 에서 컨테이너 안의 Data 나 Docker 내부의 Data 는 확인할 수 없다
- 이는, 따로 Agent 를 설치하여 Monitering 이 가능하게 할 수 있다
docker container run -d --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer
위 코드를 통해 Monitering 을 위한 portainer 를 배포해보자
docker.sock 파일을 Mount 하여, Docker daemon 과의 통신 Data 를 통해 Monitering 을 하고, 이를 Port 연결을 통해 Web 에서 확인 가능하게 한다
- 위와 같이 컨테이너, 이미지의 상태 관리도 가능하다