도커 데몬

mohadang·2022년 6월 7일
0

도커

목록 보기
23/26
post-thumbnail

도커 구조

도커 클라이언트

  • /user/bin/docker
  • 컨테이너나 이미지를 다루는 명령어를 다룬다.

도커 데몬

  • /usr/bin/dockerd
  • 도커 엔진의 프로세스
  • 실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체

도커 데몬은 API 입력을 받아 도커 엔진의 기능을 수행한다.
API를 사용할 수 있도록 CLI를 제공하는 것이 도커 클라이언트이다.
도커 클라이언트는 /var/run/docker.sock에 위치한 유닉스 소켓을 통해 도커 데몬의 API를 호출한다.
도커 클라이언트가 사용하는 유닉스 소켓은 같은 호스트 애에 있는 도커 데몬에게 명령을 전달할 때 사용된다.

EX)

$ service docker start
$ service docker stop
$ systemctl enable docker
도커를 자동으로 실행하도록 설정

서비스를 사용하지 않고 직접 도커 데몬을 실행할 수도 있다.

$ service docker stop
$ dockerd
... API listen on /var/run/docker.sock

디버깅이나 도커 자체의 트러블 슈팅이 필요하다면 도커 데몬을 직접 실행하는 것이 더 편리할 수도 있다.

도커 데몬 설정

EX) command line

$ dockerd --help
다양한 옵션 확인 가능

$ dockerd -H tcp://0.0.0.0:2375 --insecure-registry=192.168.100.99 --tls=false

EX) config

$ vim /etc/default/docker
...
DOCKER_OPTS="dockerd -H tcp://0.0.0.0:2375 --insecure-registry=192.168.100.99 --tls=false"

도커 데몬 제어: -H

RESTful API 형식을 띠고 있으므로 HTTP 요청으로 도커를 제어할 수 있다.

EX) 다음 두 명령은 차이가 없다

$ dockerd
$ dockerd -H unix:///var/run/docker.sock

EX) 호스트에 존재하는 모든 네트워크 인터페이스의 IP 주소와 2375번 포트를 바인딩해 입력을 받는다.

$ dockerd -H tcp://0.0.0.0:2375

EX) 호스으틔 모든 넽트워크 인터페이스 카드에 할당된 IP 주소와 2375번 포트로 도커 데몬을 제어함과 동시에 도커 클라이언트도 사용

$ dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 

도커 데몬 모니터링

디버그 모드는 도커 데몬을 실행할 때 -D 옵션을 추가해서 사용할 수 있다.

$ dockerd -D

디버그 모드는 도커 데몬에 문제가 생겼을 떄 무엇이 잘못됐는지 확인하는 가장 좋은 수단이다.

events, stats, system df

EX) events : 도커 데몬에 어떤 일이 일어나고 있는지를 실시간 스트림 로그로 보여줌

$ docker events
$ docker events --filter 'type=image'
$ docker system events

EX) stats : 실행 중인 모든 컨테이너의 자원 사용량을 스트림으로 출력

$ docker stats

EX) system df : 도커에서 사용하고 있는 이미지, 컨테이너, 로컬 볼륨의 총 개수 및 사용중인 개수, 크기, 삭제함으로써 확보 가능한 공간을 출력

$ docker system df
  • 사용중이지 않은 컨테이너와 볼륨은 각각 docker container prune, docker volume prune으로 한꺼번에 삭제 가능
  • docker image prune 명령어를 사용하면 사용 중이지 않은 댕글링 이미지를 삭제

도커 완전 제거

$ service docker stop
$ rm -rf /var/lib/docker 
$ rm -rf /var/run/docker
$ service docker start
profile
mohadang

0개의 댓글