본문 바로가기
개발 지식/Docker

03. 이미지와 컨테이너

by gamdong2 2024. 12. 22.

📖 학습 목표

  • 이미지란?
  • 이미지와 컨테이너
  • 이미지의 메타데이터
  • 컨테이너의 라이프사이클

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