📖 학습 목표
- 이미지란?
- 이미지와 컨테이너
- 이미지의 메타데이터
- 컨테이너의 라이프사이클
1. 이미지란?
1) 서버 구성
서버에서 프로그램이 실행되기 위해 하드웨어와 하드웨어에서 실행할 소프트웨어가 필요
- 소프트웨어가 실행되기 위해 필요한 것
- OS: 소프트웨어가 하드웨어의 자원을 사용할 수 있도록
- 구성 요소(Config): 소프트웨어는 특정 언어 및 라이브러리에 의존적
- 프로그램: 실행시킬 프로그램
- Nginx 이미지를 통해 컨테이너를 실행할 경우, 추가 라이브러리 등을 설치하지 않아도 됨
- 이미지: 소프트웨어 + 소프트웨어 실행에 필요한 모든 요소(OS, 구성 요소, 프로그램)들을 압축한 파일
- docker run <이미지명>: 이미지를 다운받아 격리된 공간에 컨테이너를 실행
2) 서버와 이미지
- 도커: 가상환경에 서버를 운영하는 기술
- 도커를 사용하는 목적: 컨테이너 내에서 소프트웨어를 운영
- 이미지: 소프트웨어와 소프트웨어 실행에 필요한 요소들을 압축시킨 파일. 컨테이너는 이미지를 통해 실행할 수 있음
- 이미지를 컨테이너로 실행 -> Host OS 안에 격리된 컨테이너 생성 -> 컨테이너 안에서 소프트웨어 실행
- 다른 사람이 만든 이미지를 사용 or 직접 제작한 이미지를 사용
2. 이미지와 컨테이너
1) 프로그램과 프로세스
- 프로그램: 디스크와 같은 저장장치에 저장된 실행 가능한 파일
- 정적(static) 상태: 실행되기 전에는 CPU, 메모리(RAM)와 같은 시스템 리소스를 소비하지 않음
- 프로세스: 프로그램이 메모리에 로드되어 실행 중인 상태
- 동적(dynamic) 상태: CPU와 메모리(RAM)를 포함한 시스템 리소스를 소비하며 실행됨
- 하나의 프로그램으로 여러 프로세스 실행 가능
2) 이미지와 컨테이너
- 이미지: "소프트웨어 + 소프트웨어 실행되기 위한 환경"의 파일
- 디스크 공간만 차지. 압축 파일의 형태
- 호스트 머신의 특정 경로에 위치
- 컨테이너: 이미지를 실행한 것
- CPU, 메모리(RAM) 소비
- 하나의 이미지로 여러 컨테이너 실행 가능
- 컨테이너를 실행시키기 위해 이미지가 필요
- 이미지를 컨테이너로 실행: "이미지에 저장된 모든 요소를 격리된 공간으로 만듦 -> 그 안에서 프로그램을 프로세스로 실행"
'개발 지식 > Docker' 카테고리의 다른 글
04. [실습] 컨테이너 실행 (0) | 2024.12.26 |
---|---|
02. [실습] 가상화 기술 (0) | 2024.12.22 |
00. 환경 준비 (0) | 2024.12.19 |
01. 가상화 기술 (0) | 2024.12.17 |