공부/클라우드

클라우드 시스템(6) - Container Management

minsun24 2024. 12. 3. 02:27

Customized Docker Image

  : 사용자 설정을 추가한 이미지

 

Customized Image 생성

  • docker commit <container_name> <image_name>  // 컨테이너를 이미지로
  • docker build [Option] Dockerfile .                              // 도커 파일로 이미지 생성 
    • -f  // 파일 

Docker Image 파일 저장

  : 운영서버에서 이미지를 사용해야 할 때 / On-premise Private 클러스터 환경일 때 사용.

  

  - save / load : 이미지 전체를 저장, 복구한다. 레이어, tag, metadata 등을 포함한다. (image -> tar 파일로 추출)

  - export / import : 컨테이너 파일 시스템만 저장한다. (container -> tar 파일로 추출)

      *git의 clone/downlod zip의 차이와 유사. 혹은 포토샵 파일과 jpeg의 차이와 유사.


Container Management

리소스 제한

메모리 할당

  • --memory / -m : 컨테이너가 사용할 최대 메모리 지정
  • --memory-swap : 컨테이너의 권장 메모리 + 여유 메모리(swap) 설정. default 는 메모리의 2배
  • --memory-reservation: 권장 메모리. 소프트한 제한.
  • --oom-kill-disable : 메모리가 부족할 때 kill 하지 못하도록 보호. (중지)

ex) docker run –d –m 1g –memory-reservation 500m nginx:1.14 

      > docker [run: 수행 명령] [-d: 백그라운드 실행] [option] [할당량] [option] [할당량] [container]

      : nginx:1.14 실행 시, 500m 권장, 최대 1g 할당 가능.

 

 

CPU 할당

  • --cpus : 컨테이너에 할당할 코어 수
  • --cpuset-cpus : 컨테이너가 사용할 코어 할당.  ex) --cpuset-cpus=[코어 번호]
  • --cpu-share / -c : 컨테이너가 사용할 cpu 비중 설정. 1024 기준. 

 

I/O 할당

  • --blkio-weight : 가중치 설정. 기준은 500이며, 이는 default 값. 100 - 1000 입력 가능.
  • --device-read-bps / --device-write-bps : read/write 초당 비트 수. (블록의 크기)
  • --device-read-iops / --device-write-iops : read/write 속도 가중치. 0 이상의 정수.

모니터링

  : 상태와 동작을 지속적으로 감시하고 평가하는 프로세스.

 

Command lines

  : Docker command 명령어를 통해 상태 확인.

  • docker stats [option] [Container_Name] : 실행중인 컨테이너의 런타임 통계 확인
  • docker events : 도커 호스트의 실시간 event 정보 수집

Prometheus(프로메테우스)

  : Container 환경의 모니터링 기능을 제공하는 오픈소스.

  : 모든 App에서 똑같이 구성된 측정값을 내놓으므로 표준적인 형태의 모니터링이 가능하다.


컨테이너 스토리지

  : 컨테이너 내의 주요 데이터를 보존/저장하기 위한 도구.

 

Container Volume

  : 컨테이너에 추가되는 데이터는 별도의 RW 레이어에 저장되어 Docker 엔진지 생성, 관리한다.

  : 컨테이너가 삭제되어도 볼륨에 저장된 데이터가 유지되며 여러 컨테이너에 볼륨을 공유할 수 있다.

  • docker volume create (볼륨명)
  • docker run -d -v [볼륨명] : [마운트 대상 디렉토리] [이미지 이름]

 

Bind Mount

  : Docker 외부의 호스트 시스템의 파일 또는 디렉토리를 컨테이너에 마운트(연결)한다.

  : 컨테이너 내/외에서 접근 및 수정이 가능하다.

  • docker run -d -v [호스트 디렉토리 경로]:[컨테이너 내부 마운트 경로]:[버전] [이미지 이름]
    • [버전]의 경우 :ro는 read-only, :rw는 read-write를 의미한다.