Docker

노력하는백엔드·2025년 8월 10일
0

이론 정리

목록 보기
1/9

도커란?

  • docker는 애플리케이션을 컨테이너라는 가상화된 환경에서 격리시켜 실행할 수 있도록 도와주는 오픈소스 플랫폼
    • 컨테이너는 실행 환경, 라이브러리, 코드 등을 함께 패키징하므로 "어디서든 동일하게 실행되는 환경"을 제공

⚙️ Docker의 핵심 개념

용어설명
이미지 (Image)컨테이너를 만들기 위한 실행 패키지. 코드, 라이브러리, 설정파일 등을 포함
컨테이너 (Container)이미지 기반으로 실행되는 가벼운 격리된 환경
Dockerfile이미지를 자동으로 만들기 위한 설정 파일 (빌드 스크립트)
Docker Hub공개된 이미지 저장소 (GitHub처럼 이미지 저장/배포)
볼륨 (Volume)컨테이너 외부에 데이터를 저장하는 방식 (데이터 유지용)
네트워크 (Network)컨테이너 간 통신을 위한 가상 네트워크 구성
  • 핵심개념(자세한 설명)
    • 이미지 (Image)

      📦 "컨테이너를 만들기 위한 설계도, 실행 패키지"

      • 애플리케이션을 실행하는 데 필요한 모든 것(코드, 라이브러리, 설정파일 등)이 담겨 있는 정적인 파일
      • 한 번 만들면 여러 번 재사용 가능
      • 예: ubuntu, node:18, mysql:5.7 같은 기본 이미지도 Docker Hub에서 가져올 수 있음
    • 컨테이너 (Contatiner)

      🚀 "이미지를 실제로 실행한 살아있는 인스턴스"

      • 이미지를 기반으로 실행되는 격리된 환경
      • 각각의 컨테이너는 독립된 프로세스로 동작하며, 서로 영향을 주지 않음
      • 컨테이너는 필요할 때 실행하고, 필요 없으면 삭제 가능
    • Dockerfile

      🧾 "이미지를 자동으로 만드는 레시피"

      • 이미지 생성을 자동화하기 위한 설정 파일
      • 예를 들어 FROM ubuntu, COPY, RUN npm install 등의 명령어로 이미지 구성
    • Docker Hub

      🌍 "이미지 저장소 (GitHub 같은 개념)"

      • 전 세계 개발자들이 만든 수많은 이미지를 공유하고 검색할 수 있는 공식 이미지 저장소
      • docker pull 명령으로 쉽게 가져올 수 있음
      • 나만의 이미지를 만들어 올릴 수도 있음
    • 볼륨 (Volume)

      🗃️ "데이터를 저장하는 공간"

      • 컨테이너는 삭제되면 안의 데이터도 사라지기 때문에, 영속적인 데이터 저장을 위해 사용하는 외부 저장 공간
      • DB 데이터, 설정 파일 등 지속되어야 하는 데이터를 저장할 때 사용

✅ Docker의 주요 특징

특징설명
경량화된 가상화VM보다 훨씬 가볍고 빠른 실행 가능
이미지 기반 배포환경 설정이 포함된 이미지를 통해 어디서나 동일하게 실행 가능
빠른 배포와 실행수 초 만에 컨테이너 실행 가능
환경 격리개발, 테스트, 운영 환경을 독립적으로 구성 가능
버전 관리이미지 버전을 관리하고 롤백 가능

🚀 Docker의 장점

장점설명
개발 환경 통일모든 개발자가 같은 환경에서 작업 가능 (개발/테스트 환경 차이 해소)
빠른 롤백/재배포이전 버전 이미지로 즉시 롤백 가능
테스트 자동화 용이CI/CD 파이프라인에 쉽게 통합 가능
자원 효율성VM보다 훨씬 적은 리소스로 여러 애플리케이션 실행 가능
격리된 보안 환경각 컨테이너는 독립된 환경으로 격리되어 보안성 향상
profile
열심히 노력하는 백엔드입니다.

0개의 댓글