
ipp 기업에서 'SW Tool : Docker, Kubernetes 등 클라우드⦁컨테이너 기술'을 사용해본 사람을 뽑는다하여
작게나마 실습을 진행해보려고 한다.
목표 설정
Docker
- 왜 쓰는가?
- Dockerfile을 만들어보았는가?
- 컨테이너로 서비스를 띄워보았는가?
Docker 실습
- 실습 목표: 내가 만든 서버를 Docker로 감싸서 실행해본다.
1. 먼저 flask로 간단한 서버를 만든다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Docker"
app.run(host="0.0.0.0", port=5000)

서버가 실행되었다.
2. 다음으로 Dockerfile을 작성한다.
FROM python:3.10-slim
WORKDIR /app
COPY app.py .
RUN pip install flask
CMD ["python", "app.py"]
- FROM: 컨테이너의 기본 OS 및 실행 환경 정의
- WORKDIR: 컨테이너 내부 작업 디렉토리 지정
- RUN: 이미지 빌드 단계에서 필요한 의존성 설치
- CMD: 컨테이너가 시작될 때 실행할 기본 명령을 정의
이제 docker Desktop을 키고 아래 명령을 입력한다.
docker build -t hello-docker .
docker run -p 5000:5000 hello-docker

docker로 감싼 서버가 실행이 되었다.
이제 '서버 환경 의존성 없이' 실행이 가능하다.
이미지 vs 컨테이너?
한 줄 요약
이미지 = 설계도 / 컨테이너 = 실행 중인 인스턴스
이미지(Image)
- 실행 파일 + 라이브러리 + 설정이 모두 들어있는 템플릿
- 정적 (변하지 않음)
- Dockerfile로 만듦
- 복사해서 컨테이너 여러 개 생성 가능
- ex) 붕어빵 틀, 클래스(class)
docker build -t my-image .
컨테이너(Container)
- 이미지를 실제로 실행한 것
- 동작 중인 프로세스
- 상태를 가진다(로그, 메모리 등)
- ex) 붕어빵, 객체(object)
docker run my-image
실제 흐름
Dockerfile -- (build) --> Image -- (run) --> Container(실행 중)
실무 관점의 포인트
Q. 컨테이너 안에서 파일 수정하면 이미지도 바뀌나요?
A. 바뀌지 않는다. 컨테이너는 이미지의 복사본이기 때문이다. (이미지는 read-only)
Q. 이미지와 컨테이너 차이 (요약)
이미지는 애플리케이션과 실행 환경을 포함한 불변의 템플릿이고, 컨테이너는 해당 이미지를 실행한 실제 인스턴스이다.
하나의 이미지를 통해 여러 컨테이너를 생성할 수 있습니다.
즉 Image는 정적, Container는 동적이다.
다음 목표
다음은 웹을 구현하며 여러 서비스(server + MySQL)를 한번에 띄우기 위해 docker-compose를 사용하는 실습을 진행해보도록 하겠다.
'Cloud, IT Infra > Docker & Kubernetes' 카테고리의 다른 글
| 운영비용 관점에서 본 docker의 Container (0) | 2026.07.14 |
|---|---|
| 이제야 알 것 같은 — Docker와 Kubernetes를 인프라 관점에서 보기 (0) | 2026.07.14 |
| 하이퍼바이저, 그리고 VM vs 컨테이너 (0) | 2026.07.13 |
| Kubernetes 실습 (1) | 2025.12.30 |
| Docker란? (0) | 2025.11.07 |