Docker의 개념

이진욱·2025년 1월 10일
0

Docker 공부

목록 보기
1/22
post-thumbnail

도커란?

Docker는 애플리케이션을 컨테이너라는 단위로 패키징하고 실행할 수 있는 플랫폼이다. 이는 소프트웨어의 실행 환경을 독립적으로 분리하여, 애플리케이션의 배포와 관리를 더욱 효율적으로 만들어준다.

1. Docker의 주요 구성 요소

1) Docker 이미지 (Image)
  • Docker 이미지는 애플리케이션 실행에 필요한 모든 파일, 라이브러리, 종속성 등을 포함한 불변의 템플릿입니다.

  • 이를 기반으로 컨테이너를 생성합니다.
    예: Ubuntu 기반 이미지에 Python과 필요한 라이브러리를 설치해 애플리케이션 이미지를 생성.

2) Docker 컨테이너 (Container)
  • 컨테이너는 이미지에서 실행된 독립적인 실행 환경입니다.

  • 가상 머신(VM)과 유사하지만, 호스트 OS 커널을 공유하므로 경량입니다.

  • 애플리케이션을 격리된 환경에서 실행할 수 있어 배포 및 관리를 단순화합니다.

3) Dockerfile
  • Docker 이미지를 생성하기 위한 설정 파일입니다.

  • 명령어를 사용해 애플리케이션 실행에 필요한 환경을 정의합니다

FROM python:3.8
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

4) Docker Hub
  • Docker 이미지를 공유할 수 있는 공식 저장소입니다.

  • 필요한 이미지를 검색하고 다운로드하거나, 사용자 정의 이미지를 업로드할 수 있습니다.

2. Docker의 주요 특징

경량화된 컨테이너
  • 가상 머신에 비해 자원을 적게 사용하며 빠르게 실행됩니다.

  • 컨테이너는 필요한 애플리케이션과 종속성만 포함합니다.

이식성
  • Docker 컨테이너는 운영체제에 상관없이 동일하게 동작합니다.

  • 예를 들어, 로컬에서 개발한 컨테이너를 그대로 클라우드 서버에 배포 가능합니다.

빠른 배포 및 확장

컨테이너는 실행이 빠르고 쉽게 생성/삭제할 수 있어 CI/CD 파이프라인에서 자주 사용됩니다.

격리된 환경
  • 컨테이너는 독립적으로 실행되며, 서로 간섭하지 않습니다.

  • 여러 애플리케이션을 동일한 서버에서 안전하게 실행할 수 있습니다.

3. Docker의 주요 명령어

컨테이너 관리

docker run [이미지]: 컨테이너 실행
docker ps: 실행 중인 컨테이너 목록 확인
docker stop [컨테이너]: 컨테이너 중지
docker rm [컨테이너]: 컨테이너 삭제

이미지 관리

docker build -t [이미지 이름] .
: Dockerfile을 사용해 이미지 생성
docker images: 이미지 목록 확인
docker rmi [이미지]: 이미지 삭제
네트워크 및 볼륨 관리
docker network: 네트워크 관리
docker volume: 데이터 지속성을 위한 볼륨 관리

4. Docker의 활용 사례

  • 애플리케이션 배포
    • 동일한 컨테이너 이미지를 사용해 로컬 개발 환경, 스테이징, 프로덕션 환경 간에 일관성 있는 배포 가능.
  • 마이크로서비스 아키텍처
    • 각 마이크로서비스를 컨테이너로 분리하여 독립적으로 배포 및 관리.
  • 테스트 환경 구축
    • 특정 환경을 손쉽게 설정하고 제거할 수 있어 테스트 환경 구축에 적합.

5. Docker와 가상 머신 비교

profile
열심히 하는 신입 개발자

0개의 댓글