도커란?

bbbbbhyun·2025년 3월 3일
0

Docker

목록 보기
1/3

Docker란?

도커(Docker)는 애플리케이션을 컨테이너(Container)라는 가벼운 환경에서 실행 및 관리할 수 있는 툴

Docker를 사용하는 이유

  1. 환경 일관성 보장
    • "내 컴퓨터에서는 잘 되는데?" → 도커를 사용하면 개발, 테스트, 배포 환경이 동일하므로 이런 문제가 사라짐
  2. 경량화된 가상화 (컨테이너 방식)
    • 기존 VM(가상 머신)은 무겁고 성능이 떨어지지만, 도커 컨테이너는 가볍고 빠름
  3. 배포 및 확장 용이
    • 애플리케이션을 컨테이너 이미지로 만들어 어디서든 실행 가능(이식성)
    • 마이크로서비스 아키텍처(MSA)에서 필수적인 기술
  4. 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않음

핵심 개념

이미지(image)란?

  • 실행 가능한 애플리케이션과 모든 종속성을 포함한 템플릿
  • Dockerfile을 통해 생성

컨테이너(Container)란?

  • 이미지를 실행한 실제 프로세스
  • 격리된 환경에서 실행되며, 필요하면 여러 개 생성 가능
  • docker run 명령어로 실행

Dockerfile

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

Docker Compose

  • 여러 개의 컨테이너를 한 번에 실행하는 도구
  • docker-compose.yml 파일 사용

Docker Volume

  • Docker 컨테이너는 기본적으로 휘발성(Volatile)이므로, 컨테이너를 삭제하면 내부 데이터도 사라짐, 이를 해결하기 위해 Docker Volume을 사용

✅ Volume을 사용하는 이유
1. 컨테이너가 삭제되어도 데이터 유지 가능
2. 여러 컨테이너가 같은 데이터 공유 가능
3. 호스트 OS와 독립적으로 관리 가능 (보안성 & 성능 향상)

Docker Network

  • Docker에서는 컨테이너 간 통신을 위해 네트워크(Network)를 사용

✅ 네트워크를 사용하는 이유
1. 컨테이너 간 통신 가능 (내부 IP 할당)
2. 호스트와 컨테이너 간 연결 가능
3. 보안 분리 (다른 네트워크와 격리 가능)

✅ 네트워크 종류

네트워크 타입 설명
bridge 기본 네트워크, 컨테이너 간 통신 가능
host 컨테이너가 호스트의 네트워크를 직접 사용
none 네트워크 미적용 (격리된 상태)
overlay 여러 호스트의 컨테이너를 연결 (Swarm 모드)

참고

https://velog.io/@markany/도커에-대한-어떤-것-1.-도커란-무엇인가
https://squirmm.tistory.com/entry/Docker-도커란-무엇인가
https://seosh817.tistory.com/345

profile
BackEnd develope

0개의 댓글