[docker] 도커와 컨테이너

sujin·2025년 3월 4일
0

도커란?

도커는 프로그램을 실행하기 위한 가상의 컨테이너를 만들어주는 도구입니다. 쉽게 말해, 개발자가 만든 프로그램을 어디서든 동일한 환경에서 실행할 수 있도록 해주는 마법같은 기술입니다.

what container 공식페이지에서 아래와 같이 정의합니다.
컨테이너는 소프트웨어의 표준 단위로, 애플리케이션이 실행되는데 필요한 코드와 모든 종속성을 패키징하여 환경과 상관없이 빠르고 안정적으로 실행할 수 있도록 합니다.도커 컨테이너 이미지는 코드, 실행환경, 시스템 도구, 시스템 라이브러리, 설정 등을 포함한 독립적이고 가벼운 실행 패키지입니다.
컨테이너 이미지는 실행될 때 컨테이너가 되며, 도커 컨테이너의 경우 도커 엔진에서 실행되면서 컨테이너가 활성화됩니다. 리눅스 및 윈도우 기반 어플리케이션 모두에서 사용할 수 있으며, 환경과 관계없이 동일한 방식으로 실행할 수 있습니다. 컨테이너는 소프트웨어를 실행 환경에서 격리하여 개발, 테스트, 운영 환경 간 차이로 인해 발생하는 문제를 방지할 수 있도록 합니다.

도커를 사용하는 이유

개발자들은 종종 이런 문제를 겪습니다.

  • 내 컴퓨터에서는 잘 실행되는데, 서버에서는 왜 안될까?
  • 버전이 달라서 프로그램이 깨지는 것 같아.
  • 이 프로그램을 실행하려면 환경 설정이 너무 복잡해.

도커는 이러한 문제를 해결해줍니다. 프로그램과 실행에 필요한 모든 환경을 하나의 컨테이너에 담아 어디서든 동일하게 실행할 수 있도록 만들어줍니다.

도커와 가상머신(virtual machine)

도커 컨테이너와 가상머신 모두 프로그램을 독립된 환경에서 실행할 수 있도록 해주는 기술이지만, 몇 가지 차이점이 있습니다.

비교 항목컨테이너가상머신 (VM)
실행 속도빠름 (가벼움)느림 (무겁고 부팅 필요)
OS 사용호스트 OS 공유각 VM마다 OS 설치 필요
자원 사용량적음 (프로그램과 필수 요소만 포함)많음 (각 VM마다 OS 포함)
실행 방식호스트 OS 위에서 실행하이퍼바이저(VM 관리 프로그램) 위에서 실행
배포 및 확장빠르고 쉬움상대적으로 어려움

즉, 컨테이너는 가상머신보다 훨씬 가볍고 빠르며, OS를 공유하기 때문에 더 적은 자원을 사용합니다. 반면 가상머신은 OS를 독립적으로 포함하고 있어 더 무겁지만, 강력한 격리 기능을 제공합니다.

도커의 핵심 개념

  1. 이미지(image): 프로그램과 실행 환경을 포함한 템플릿
  2. 컨테이너(container): 이미지를 실행한 상태, 실제 동작하는 프로그램
  3. 도커 허브(Docker Hub): 다양한 이미지가 공유되는 온라인 저장소
  4. Dockerfile: 이미지를 만들기 위한 설정 파일


profile
감자 그리고 NLP

0개의 댓글

관련 채용 정보