[Docker] 도커(Docker)의 개념과 컨테이너(Container)

JOY·2023년 7월 30일
0

[Docker]

목록 보기
1/2
post-thumbnail

Docker 도커

컨테이너 기반 오픈소스 가상화 플랫폼, 컨테이너를 위한 운영 체제
어플리케이션과 종속성을 컨테이너에 패키징 하고 배포할 수 있게 해주는 오픈소스 플랫폼

Dockerfile 도커 파일

도커 이미지를 만들기 위한 설정 파일

  • 어플리케이션을 도커 컨테이너로 만들기 위한 빌드 절차 기술
  • 텍스트 파일
  • 구성 요소
    • 베이스 이미지 : 새로운 이미지 생성 시 베이스 이미지 지정
    • 의존성 설치 : 어플리케이션 실행 시 필요한 패키지, 라이브러리 등 설치
    • 어플리케이션 파일 복사 : 어플리케이션 실행 파일 및 설정 파일 등 이미지 내부로 복사
    • 실행 명령어 : 컨테이거 시작 시 실행될 명령어 지정

Docker Image 도커 이미지

도커 파일로부터 만들어진 실행 가능한 패키지로, 애플리케이션과 환경을 포함

  • 컨테이너 생성을 위한 템플릿으로 사용
  • 읽기 전용, 수정 불가
  • 동일한 도커 이미지로 여러개 컨테이너를 생성하여 같은 환경에서 실행 가능

Docker Container 도커 컨테이너

도커 이미지를 기반으로 생성되어 실행 중인 애플리케이션의 인스턴스

  • 격리된 환경에서 어플리케이션을 실행할 수 있도록 도와줌
  • 독립적 실행, 호스트 시스템과 커널 공유
    ❗도커 이미지 실행 시 해당 이미지의 컨테이너가 생성되고 시작
    컨테이너는 어플리케이션의 실행 프로세스를 가지며 종료시 어플리케이션도 함께 종료

Docker 사용 이유

1. 쉬운 환경 구축과 배포
개발/운영 환경 차이의 문제를 줄이고 배포를 단순화 하여 개발부터 운영까지 생산성 향상

2. 효율적인 자원 관리
호스트 시스템과 커널을 공유하므로 오버헤드가 적음
👉 컨테이너는 빠르게 시작되고 작동하며 더 많은 애플리케이션을 동일한 호스트 시스템에서 실행

3. 다양한 환경 지원
모든 운영체제와 클라우드 플랫폼 지원
👉 개발 환경, 가상 머신, 클라우드 서비스등 다양한 환경에서 사용 가능

4. 운영 표준화
어플리케이션 상태를 이미지로 저장 손쉬운 배포와 문제 발생시 빠르게 롤백 수행


Container 컨테이너

소프트웨어 어플리케이션과 실행에 필요한 구성요소를 담고있는 경량화 패키지

  • 가상화 기술 중 하나
  • 호스트 운영체제 위에 여러 개의 격리된 환경을 생성
  • 각각의 컨테이너 안에서 애플리케이션 실행
  • 어플리케이션과 의존성을 격리된 환경에 담고 있음
  • 라이브러리, 설정 파일, 실행 파일 등을 담고 있으며 독립적으로 실행될 수 있도록 설계

Container 특징

1. 격리성
호스트 시스템에서 분리된 환경에서 동작하기 때문에 다른 컨테이너/시스템의 영향을 받지 않음

2. 이식성
어플리케이션 실행 구성요소를 모두 담고 있는 패키지이므로, 빌드와 실행을 다른 환경에서 할 수 있음

3. 경량성
가상 머신과는 달리 컨테이너는 호스트 시스템과 커널을 공유하므로 빠르게 시작하고 실행

4. 빠른 시작
몇초내에 실행 가능하기 때문에 빠르게 배포하고 확장 가능

❔호스트 시스템이란?

컴퓨터나 서버에 설치되어 있는 운영체제(OS)


🔎 참고
Docker란 무엇입니까?

profile
Just Do IT ------- 🏃‍♀️

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

글 잘 봤습니다.

답글 달기