DOCKER

[Dokcer] Docker란 무엇일까?? (Container 란??, Image 란??)

ch010104 2025. 6. 17. 20:11

🐳 1. 왜 Docker를 배워야 할까?

핵심 이유: 이식성 (Portability)

 

서로 다른 환경에서도 똑같은 결과를 보장한다는 것이 Docker의 가장 큰 장점!!

 

❓ 예를 들어서

  • 친구는 MySQL을 잘 설치했는데,
    나는 같은 방식으로 설치했는데도 오류가 뜬다?
  • 이유는 다양:
    • OS 차이 (Windows vs Mac)
    • 버전 충돌
    • 보안 프로그램 간 충돌

이런 복잡한 상황을 Docker는 한 줄 명령어로 해결

docker run mysql

 

💡 설치 과정 X, 환경 설정 X → 바로 실행!


🧩 2. Docker의 핵심 개념 세 가지

 

1) Docker란?

  • 하나의 컴퓨터 안에 여러 개의 독립된 미니 컴퓨터 환경(컨테이너)을 만들 수 있는 툴

2) 컨테이너(Container)란?

  • 독립적인 실행 환경
  • 각 컨테이너는 자기만의 저장공간, IP 주소, 포트 등을 가짐
  • 다른 컨테이너와는 충돌하지 않음

🧠 비유:

  • 윈도우의 사용자 계정처럼 각각 독립된 공간
  • = 미니 컴퓨터라고 생각

3. 이미지(Image)란?

  • 실행 가능한 프로그램을 미리 저장해놓은 ‘템플릿’
  • 설치 과정, 환경 설정, 버전 정보가 모두 포함된 스냅샷
  • 예: nginx, mysql, node 서버를 이미지로 실행 가능
컨테이너와 컨테이너를 포함하고 있는 컴퓨터를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 ‘ 호스트 (host) 컴퓨터 ʼ라고 부름

docker pull mysql            # 이미지 다운로드
docker run -d --name my-db mysql  # 이미지 → 컨테이너 생성 및 실행

 

  • 즉, docker Image를 통해 나의 호스트 컴퓨터에 docker Container를 만드는 것!!
  • docker Image가 음식을 만들기 위한 레시피라면, docker Container는 진짜 음식!!

4. Dokcer 설치


🌐 3. 보충: IP와 포트 개념

1) IP란?

 

  • 네트워크 상에서 특정 컴퓨터의 주소
  • 예: 13.250.15.132

2) Port란?

  • 한 컴퓨터 내에서 특정 프로그램을 구분하는 주소
  • 예: 13.250.15.132:3000 → 해당 컴퓨터의 3000번 포트에서 실행 중인 프로그램과 통신

🔍 왜 포트를 지정해야 할까?

  • 하나의 컴퓨터에서 여러 프로그램 실행 중
  • 외부에서는 IP만으로는 어떤 프로그램에 연결해야 할지 알 수 없음
  • 그래서 포트 번호까지 알아야 통신 가능

🌐 웹 브라우저는 왜 포트를 안 써도 될까?

  • 기본 포트가 자동 설정됨:
    • http: 80번
    • https: 443번
  • 그래서 naver.com이라고만 입력해도 자동으로 80 포트로 연결

🔧4. 실습 예제: Nginx 컨테이너 실행

# 1. 이미지 다운로드
docker pull nginx

# 2. 다운로드된 이미지 확인
docker image ls

# 3. 컨테이너 실행 (80포트 매핑)
# 이미지를 컨테이너에 올려 Nginx 서버 실행시키기
# nginx 라는 이미지를 사용해서 detach 모드(백그라운드 실행)으로 80 포트에서 webserver 라는 이름의 컨테이너를 생성 후 실행
docker run --name webserver -d -p 80:80 nginx

# 4. 실행 중 컨테이너 확인
# localhost:80 에 접속하면 Ngnix 컨테이너의 webserver 화면이 보임
docker ps

# 5. 컨테이너 종료
docker stop webserver
# localhost:80 에 접속하면 아무것도 나오지 않음

 


💡5. 정리

항목 설명
Docker 컨테이너 실행 및 관리 도구
컨테이너 독립된 실행 환경 (미니 컴퓨터)
이미지 컨테이너 실행에 필요한 모든 구성 포함
IP 컴퓨터 주소
Port 컴퓨터 내 프로그램 주소(컴퓨터 주소마다 각자 Port가 존재)