티스토리 뷰

Docker & AWS

[Docker 2] Container

up_one 2025. 7. 2. 11:42

2025.06.29 - [Docker & AWS] - [Docker 1] Docker의 장점과 Image

 

[Docker 1] Docker의 장점과 Image

https://hub.docker.com/_/docker docker - Official Image | Docker HubDocker Official Images are a curated set of Docker open source and drop-in solution repositories. Why Official Images? These images have clear documentation, promote best practices, and ar

up-one-coding.tistory.com

Container은 지난 시간 알아본 Docker Image을 Run 하면 생성되는 일종의 별도 서버입니다. Image을 실행한 인스턴스로써 상태 변화가 가능하고 중지 및 재시작, 삭제가 가능한 것이 Container의 특징입니다.

비유하자면, Docker Image는 클래스, Docker Conatiner은 인스턴스라고 이해할 수 있습니다. 즉, Image 없이 Container는 생성될 수 없으며, 하나의 Image를 가지고 여러 개의 Container를 만들 수 있고 상태 변화도 가능합니다.

  • 실행 중 (running)
  • 중지 (exited)
  • 일시 정지 (paused)
  • 삭제 (removed)
#1. image build
docker build -t my-python-app .

#2. 이미지 실행
docker run -p 5000:5000 my-python-app

컨테이너 상태를 확인할 수 있는 command 정리

 

Container의 또 다른 기능은 네트워크, 볼륨, 포트를 통해 외부와 통신할 수 있다는 것입니다. Docker는 컨텐이너를 격리된 환경에서 실행시키되, 필요에 따라 외부(다른 컨테이너, 호스트, 사용자 등)와 안정적이고 유연하게 연결할 수 있도록 몇 가지 인터페이스를 제공합니다.

 

1. 호스트와 통신, 포트(port)

컨테이너 내부에서 실행되는 서비스는 특정 포트를 사용합니다. (Python Flask 내 포트 : 5000) 이 포트를 호스트 머신의 포트와 매핑해야 외부 사용자가 접근할 수 있습니다.

docker run -p 8000:5000 my-app

 

  • 컨테이너 내부 : 5000번 포트에서 서비스 실행 (python app.py)
  • 호스트 외부 : 8000번으로 요청하면 5000으로 전달

 

2. 컨테이너 간 통신, 네트워크(Network)

Docker는 컨테이너 간 격리를 유지하면서, 필요한 경우 가상의 네트워크를 통해 상호 연결시킵니다. 기본적으로 Compose를 사용하면 자동으로 하나의 사용자 정의 브리지 네트워크가 생성됩니다.

 

[네트워크 타입]

  • bridge : 기본값, 단일 호스트 내부 컨테이너 간 연결
  • host : 호스트 네트워크를 그대로 공유
  • none : 네트워크 기능 없이 완전 격리
  • overlay : 다중 호스트 연결용

3. 파일 공유 및 데이터 영속성을 위한 볼륨(Volume)

컨테이너 내부 파일 시스템은 일시적입니다. 컨테이너가 삭제되면 내부 데이터도 사라지기 때문에, 볼륨(Volume)이라는 호스트와 공유 가능한 외부 저장소가 필요합니다.

  • DB 데이터 유지 : MYSQL의 데이터 저장 경로를 볼륨으로 지정
  • 코드 핫리로드 : 소스코드 볼륨 마운트 후 수정하면 바로 적용
  • 로그 확인 : 로그 파일을 컨테이너 외부에서 접근 가능하게 만듦

Container의 외부 접속

 

'Docker & AWS' 카테고리의 다른 글

[Docker 1] Docker의 장점과 Image  (1) 2025.06.29
TAG more
글 보관함
최근에 올라온 글