내 간단한 Docker 프로젝트

발행: (2025년 12월 28일 오전 03:48 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

My Simple Docker Project의 표지 이미지

Source:

🐳 간단한 “Hello World” Docker 프로젝트 만들기

🚀 이 가이드에서는 “Hello World” 메시지를 표시하는 컨테이너화된 Python 웹 애플리케이션을 만들 것입니다. 이 튜토리얼은 Ubuntu/Debian 기반 Linux 배포판에서 작동합니다.

🔹 시스템 준비

시작하기 전에 시스템 패키지를 업데이트하고 업그레이드합니다:

sudo apt update
sudo apt upgrade -y

Docker와 기타 필요한 종속성을 설치합니다:

sudo apt install ca-certificates curl gnupg

Docker 공식 GPG 키 추가

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc

Docker 저장소 추가

echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker 설치

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

설치 확인:

docker --version

Docker 시작 및 자동 시작 설정:

sudo systemctl enable --now docker

Docker 상태 확인:

sudo systemctl status docker

🔹 Docker Compose 플러그인 설치

Ubuntu에서는 이제 독립 실행 파일 대신 Docker Compose 플러그인을 사용합니다:

sudo apt install docker-compose-plugin -y

설치 확인:

docker compose version

Python Pip 설치 (종속성 관리)

sudo apt install python3-pip
python3 -m pip install --upgrade pip

🔹 프로젝트 디렉터리 만들기

디렉터리 구조를 설정합니다:

mkdir docker-projects
cd docker-projects

🔹 Python 웹 애플리케이션 만들기

app.py 파일을 생성합니다:

touch app.py
nano app.py

다음 Python Flask 코드를 붙여넣습니다:

from flask import Flask
import redis

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    try:
        return cache.incr('hits')
    except redis.exceptions.ConnectionError:
        return 1

@app.route('/')
def hello():
    count = get_hit_count()
    return f"Hello World! You have visited {count} times."

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

파일을 저장합니다 (CTRL + X, 그 다음 Y).

🔹 종속성 정의

requirements.txt 파일을 생성합니다:

touch requirements.txt
nano requirements.txt

requirements.txt에 다음 내용을 추가합니다:

Flask
redis

저장합니다 (CTRL + X, 그 다음 Y).

🔹 Dockerfile 만들기

Dockerfile을 생성합니다:

touch Dockerfile
nano Dockerfile

다음 Dockerfile 구성을 붙여넣습니다:

FROM python:3.9

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

저장합니다 (CTRL + X, 그 다음 Y).

🔹 Docker Compose 설정

docker-compose.yml 파일을 생성합니다:

touch docker-compose.yml
nano docker-compose.yml

다음 Docker Compose 구성을 붙여넣습니다:

version: '3'

services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - redis

  redis:
    image: "redis:alpine"

저장합니다 (CTRL + X, 그 다음 Y). ⚠ YAML 파일은 들여쓰기에 민감하니 실행 전에 반드시 검증하세요!

🔹 프로젝트 빌드 및 실행

docker-projects 디렉터리에 있는지 확인합니다:

cd docker-projects

컨테이너를 시작합니다:

sudo docker-compose up --build

🔹 웹 앱 테스트

브라우저를 열고 주소에 접속합니다. 다음과 같은 화면이 표시됩니다:

Hello World! You have visited 1 times.

페이지를 새로 고침하면 방문자 수가 증가합니다.

🔹 컨테이너 중지

작업이 끝나면 컨테이너를 종료합니다:

sudo docker-compose down
Back to Blog

관련 글

더 보기 »