Docker 핵심 개념, 활용법

미남잉·2025년 2월 2일
0

Docker는 컨테이너 기반의 가상화 플랫폼으로, 애플리케이션과 그 실행 환경을 패키지화하여 어디서나 동일한 환경에서 실행할 수 있도록 돕는 도구임. 컨테이너라는 기술을 중심으로 운영되며, 경량화된 가상화 환경을 제공함

  1. Docker의 주요 특징:
  • 개발, 배포, 실행 환경을 표준화함
    한 컴퓨터에서 잘 작동하는 프로그램이 다른 환경에서도 문제없이 실행되도록 해줌
  1. Docker의 장점
  • 환경 차이 제거: "내 컴퓨터에선 잘 되는데..." 같은 문제가 사라짐. 개발, 테스트, 프로덕션 환경이 모두 동일함
  • 배포 자동화: 코드 빌드 및 배포 과정이 단순화됨
  • 가벼움: 가상머신(VM)보다 훨씬 빠르고 적은 자원을 사용함
  • 이동성: 컨테이너를 다른 서버, 클라우드, 로컬 컴퓨터 등 어디서나 실행 가능함
  1. Docker의 핵심 개념
  • 이미지(Image): 프로그램과 실행 환경(라이브러리, OS 설정 등)을 모두 포함하는 템플릿임
  • 컨테이너(Container): 이미지를 실행한 독립된 프로세스로, 마치 "가볍고 빠른 가상머신"처럼 동작함
  • Dockerfile: 이미지를 만들기 위한 설정 파일임
  1. Docker의 활용
  • 개발 단계: 개발자는 컨테이너를 사용해 개발 환경을 구축함. 같은 이미지를 모든 팀원이 사용하므로 환경 차이로 인한 문제가 없음
  • 테스트 단계: 컨테이너를 사용해 자동화된 테스트를 수행함. 여러 테스트 환경을 손쉽게 재현할 수 있음
    배포 단계: Docker 이미지를 그대로 프로덕션 환경에 배포함. 일관성이 보장되어 배포가 더 안전함
  1. Docker와 리눅스
  • Docker는 리눅스 기반에서 만들어졌고, 리눅스에서 가장 빠르고 안정적으로 작동함.
  • 대부분의 서버 환경(특히 클라우드)에서 리눅스를 사용하며, Docker도 이런 리눅스 환경을 최대한 활용함.
  • Docker는 리눅스의 기술인 컨테이너와 커널 기능을 활용해 작동함
  • 리눅스 커널의 네임스페이스(Namespace): 애플리케이션마다 독립된 공간을 제공함. 서로 격리된 환경을 만드는 데 사용됨
  • 리눅스의 cgroups(Control Groups): 애플리케이션이 사용하는 CPU, 메모리 같은 리소스를 제한하고 관리함
  • 쉽게 말해, 리눅스는 Docker가 애플리케이션을 "격리"하고 "가볍게" 실행할 수 있게 해주는 도구상자임.
  • Docker를 도시락에 비유할 수 있음:
    - 도시락(이미지)에는 밥, 반찬, 음료가 다 들어 있음
    - 도시락을 꺼내면(컨테이너 실행) 어디서든 동일한 음식을 먹을 수 있음
    - 도시락을 만드는 방법(레시피)은 Dockerfile로 정의됨
    - 이렇게 Docker는 애플리케이션 개발과 배포 과정을 단순화하고 표준화하여, 개발자와 운영팀 모두에게 큰 이점을 제공함.

예전에 정리해둔 내용 포스팅

profile
Computer Vision Engineer

0개의 댓글

관련 채용 정보