alt
Home 시작하세요! 도커 / 쿠버네티스 2장 도커 엔진 - 4. 도커 데몬
Post
Cancel

시작하세요! 도커 / 쿠버네티스 2장 도커 엔진 - 4. 도커 데몬


도커 클라이언트와 도커 데몬

  • 도커 클라이언트: Mac 기준 /usr/local/bin/docker, 리눅스 기준 /usr/bin/docker에 존재. 도커데몬의 API를 호출함으로써 유저가 CLI로 도커를 이용할 수 있도록 한다. /var/run/docker.sock Unix 소켓을 이용한다.
  • 도커 서버(데몬 - dockerd): /usr/bin/dockerd (Mac에서는 도커 데스크탑에 존재). dockerd 명령어를 통해 도커 데몬을 포그라운드 형태로 직접 실행할 수 있다.
    • --insecure-registry -> 레지스트리 컨테이너 구축 / --storage-opt -> 스토리지 백엔드 변경 등 다양한 도커 데몬 설정이 가능하고, 매번 직접 CLI로 칠 필요 없이 설정파일 DOCKER_OPTS에 입력해놓을 수 있다.
    • k8s로 따지면 Podman에 대응된다고 보면 된다.


도커 데몬 제어: -H

  • 해당 옵션과 함께 IP, port를 적어두면 원격 API인 Docker remote API로 도커를 제어할 수 있다. (HTTP 요청)
    • 만일 remote docker daemon 주소만 적으면 해당 도커 데몬에 로컬에서 사용하던 unix 소켓이 비활성화 되어 로컬 CLI를 사용 할 수 없게 되니, 함께 입력하면 둘다 요청을 받아 처리할 수 있다.
    • 각 언어별로 라이브러리들이 오픈소스 형태로 존재한다. 개발에 필요한 경우 이용할 수 있다.


도커 데몬에 보안 : –tlsverify

: 기본적으로 도커에는 보안 연결이 설정돼있지 않는다. remote API를 사용할 때도 마찬가지이기 때문에 TLS를 적용해야한다.


스토리지 드라이버 변경: –storage-driver

: 도커는 스토리지 백엔드 기술을 이용해 컨테이너와 이미지를 저장 및 관리한다. Mac에서는 overlay2.

  • 스냅샷의 개념이 이용된다: 원본은 읽기전용으로 사용하고 변경은 새로운 공간에 할당하기
    • CoW: 스냅샷 공간에 원본파일 복사 후 변경사항 쓰기. (write 오버헤드 2회)
    • RoW: 원본 스냅샷을 freeze 시킨 뒤 스냅샷 공간에 변경된 사항 새롭게 할당받아 쓰기(write 1회)
  • 이미지 레이어는 각 스냅샷에 해당한다. 컨테이너 레이어의 변경점을 커밋하면 변경사항(diff)스냅샷(commit)으로 생성되고 해당 diff는 하나의 이미지 레이어로서 존재한다.


데몬 모니터링

: 컨테이너 상태 뿐 아니라 도커를 PaaS로 제공하는 경우를 위해 도커 데몬 자체를 모니터링 할 수 있다.


  • events: 컨테이너, 이미지, 볼륨 네트워크 관련 명령어 실행 결과를 모니터링
  • stats: 컨테이너 자원 사용량 모니터링
  • system df: 컨테이너, 이미지, 볼륨 사용량과 삭제함으로써 확보 가능한 공간 등 모니터링 -> prune 관련
  • CAdvisor: 호스트의 도커 관련 디렉터리를 모두 해당 컨테이너와 볼륨 공유한다. 리소스, 컨테이너 상태 등을 확인 할 수 있다. 호스트의 도커 리소스를 공유하는 것이기 때문에 단일 호스트 한정이다.



Reference)

시작하세요! 도커 / 쿠버네티스

This post is licensed under CC BY 4.0 by the author.

시작하세요! 도커 / 쿠버네티스 2장 도커 엔진 - 3. Dockerfile

시작하세요! 도커 / 쿠버네티스 3장 도커 스웜