Docker 이미지

김토리·2024년 9월 1일
post-thumbnail

컨테이너 플랫폼 == 도커

자체적으로 엔진과 런타임을 가지고 있음
엔진은 사용자의 요청을 받아서 컨테이너를 관리해주는 역할
런타임은 커널과 통신하며 격리된 공간 만듦
도커는 runc라는 컨테이너 런타임 사용하고 OCI에서 규정한 CRI(Container Runtime Interface)를 구현했기 때문에 무조건 runc를 사용해야하는 건 아님
하지만runc 는 도커가 지원하는 기본 컨테이너 런타임
컨테이너 가상화를 사용할 땐 어떤 컨테이너 플랫폼이나 런타임을 사용할지는 자유임
도커가 가장 빨리 출발해서 레퍼런스나 문서가 많다.

도커는 클라이언트-서버모델로 실행
클라이언트는 도커데몬에게 사용자 명령 전달
클라이언트 요청에 따라 컨테이너 관리하는 게 도커 데몬

API란 상호간의 약속임 == 상호간의 주고받는 데이터의 약속된 양식
도커데몬 = 컨테이너를 관리해주는 주민센터 직원이라 침
컨테이너 생성 삭제에 따른 API를 도커에서 제공함
HTTP 방식의 json형식으로

Docker CLI가(Command Line Interface)를 제공하여 도커 데몬의 API를 쉽게 사용.
도커 데몬은 CLI에서 받은 API를 받아 컨테이너 런타임을 통해 컨테이너를 조작하고 CLI로 결과 보냄.

클라이언트는 CLI,서버는 도커 데몬으로 구성

Docker run (실행 옵션) 이미지명
실행

docker rm (컨테이너명/ID)

실행 시킨 후 엔지닉스 점유 상태 빠져나오려면 Ctrl + c

OS필요,런타임언어/라이브러리 설정 및 구성 설치
서버에서 프로그램 실행 위해 소프트웨어적으로 OS, 구성요소 언어 등 필요
Nginix 이름만 지정해서도 사용가능했는데 이는
특정 시점의 파일시스템을 저장한 압축파일
이미지 안에는 OS와 구성요소 (Configuration) 포함됨
이미지는 윈도우에서 사용되는 백업기능과 비슷
이미지는 컨테이너 사용에 있어 가장 중요한 요소 중 하나
다른 사람이 만든 이미지를 받아서 사용하거나 직접 만들 수 있음
이미지 다운/공유 공간은 레지스트리

<쩡리>
도커는 가상환경 서버를 운영하는 기술
컨테이너 내에서 웹서버나 웹 애플리케이션 운영이 목적
이미지는 파일 시스템의 상태를 저장해 놓은 압축파일
이미지 실행 == 완전히 격리된 컨테이너가 만들어짐 그 안에서 소프트웨어 실행

이미지는 디스크공간만 차지하지만
실행하면 격리된 공간이 만들어지고 그 안에서 프로그램이 프로세스로 실행된다.
CPU,MEM 점유


docker image ls :가지고 있는 이미지 리스트
docker image ls nginx : 가지고 있는 nignix이미지 리스트
docker run -d --name {containerName} imageName
docker ps:실행중인 컨테이너 리스트
docker rm -f :실행중인 컨테이너 강제 종료 가능한 옵션을 붙인 종료 명령어
docker image inspect nginx: 도커 이미지 정보 확인

meta data => 데이터의 데이터
ENV:sw가 실행시 참조할 설정정보
Cmd:컨테이너 실행 시 프로세스 명령 실행 지정

docker run --name customCmd nginx cat usr/share/nginx/html/index.html

-d == detach :백그라운드로 실행시켜 지속적으로 실행되는 데몬 프로그램 실행 시 적합

defaultCmd: 기본 메타데이터로 실행
메타데이터 덮어쓰기 후 종료 후 실행
cat은 일회성 명령어로 출력하고 끝남

profile
웹 개발하며 데이터 분석, AI 공부하는 jinveloper

0개의 댓글