개요
개발 환경을 손쉽게 구축하고 유지보수하기 위해 Docker와 Docker-compose를 활용하면 매우 편리하다. 이 글에서는 Windows 10 환경에서 Python + MySQL 개발 환경을 Docker-compose로 설정하는 방법을 소개한다. 또한, VSCode를 활용하여 컨테이너 내에서 개발하는 방법도 다룬다.
1. 사전 준비
본격적인 설정에 앞서, 아래 프로그램이 설치되어 있어야 한다.
- Docker Desktop
- VSCode (Visual Studio Code)
- VSCode 확장 프로그램: Dev Containers, Docker
2. 프로젝트 폴더 생성
먼저, 개발 환경을 구성할 폴더를 생성한다.
mkdir PythonMySqlDev
cd PythonMySqlDev
이후, **PythonMySqlDev 폴더를 우클릭 → 'VSCode에서 열기'**를 선택한다.
3. Docker 설정 파일 생성
프로젝트 루트 폴더(PythonMySqlDev)에서 Dockerfile과 docker-compose.yaml을 생성한다.
3.1 Dockerfile 작성
Dockerfile은 Python 실행 환경을 구성하는 역할을 한다. VSCode에서 Dockerfile을 생성하고 아래 내용을 입력한다.
# Debian 12 기반 Python 3.12.5 이미지 사용
FROM python:3.12.5-slim-bookworm
# 이미지 정보를 추가
LABEL maintainer="CnCSoft"
# Python 출력 버퍼링 비활성화
ENV PYTHONUNBUFFERED=1
# 애플리케이션 코드 복사
COPY ./app /app
# 작업 디렉토리 설정
WORKDIR /app
# 8000번 포트 노출
EXPOSE 8000
# 가상환경 설정 및 패키지 설치
RUN python -m venv venv && \
pip install --upgrade pip
CMD [ "/bin/bash" ]
위 파일의 주요 역할:
- Python 3.12.5 이미지 기반으로 환경 구성
- /app디렉터리에 애플리케이션 코드 복사
- 8000번 포트 노출
- 가상환경(venv) 설정 및 pip 업그레이드
3.2 docker-compose.yaml 작성
docker-compose.yaml 파일을 생성하고 아래 내용을 추가한다.
services:
db:
container_name: myDB
image: mysql
volumes:
- ./dbPyMysql:/var/lib/mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=your_password
networks:
- mydev
python_dev:
build: .
container_name: myPython
image: python-dev
ports:
- "5001:5000"
tty: true
stdin_open: true
networks:
- mydev
networks:
mydev:
주요 설정:
- db 서비스: MySQL 컨테이너 생성 및 데이터 영구 저장(volumes 사용)
- python_dev 서비스: Python 애플리케이션 실행
- tty: true, stdin_open: true 추가하여 Python 컨테이너가 종료되지 않도록 설정
- networks: 두 컨테이너가 같은 네트워크에서 통신 가능하도록 설정

4. 컨테이너 실행
이제 VSCode의 터미널에서 아래 명령어를 실행하여 컨테이너를 빌드하고 실행한다.
docker-compose up -d

실행 확인
컨테이너가 정상적으로 실행되었는지 확인하려면 아래 명령어를 사용한다.
docker ps

또한, Docker Desktop에서 실행 중인 컨테이너를 확인할 수도 있다. 컨테이버 뷰에서는 1개의 컨테이너만 보인다.

위의 화면에서 pythonmysqldev 를 클릭해서 들어가면 2개의 컨테이너가 실행 중인 것이 보인다.

5. VSCode에서 컨테이너에 연결하여 개발하기
- VSCode에서 Ctrl + Shift + P를 누른다.
- Dev Containers: Attach to Running Container... 선택
- myPython 컨테이너를 선택하면, 새로운 VSCode 창이 열리며 컨테이너 내부에서 작업할 수 있다.
이제 컨테이너 환경에서 Python과 MySQL을 활용한 개발을 진행할 수 있다.

새로 열린 파이썬 컨테이너에 연결된 VSCode 화면

처음 열었던 VSCode의 Docker 파일이 저장된 곳에는 mysql 컨테이너의 db파일이 호스트에 저장되도록 마운트 시킨 dbPyMysql 폴더가 docker-compose up 실행 이후에 새로 생겼다.

6. 마무리
이 글에서는 Docker-compose를 활용한 Python + MySQL 개발환경 구성 방법을 살펴보았다.
- Dockerfile을 사용하여 Python 실행 환경 구성
- docker-compose.yaml로 Python과 MySQL 컨테이너 정의
- VSCode에서 컨테이너 내부에서 개발하는 방법
이 설정을 활용하면 개발 환경을 빠르게 구성하고, OS에 상관없이 동일한 환경을 유지할 수 있다. 이제 직접 따라 해 보면서 Docker 개발 환경을 구축해 보자! 🚀
'SW 개발 > Docker' 카테고리의 다른 글
| 라즈베리 파이에서 실행 가능한 딥시크(DeepSeek) 버전 설치 방법 – 구형 노트북에서도 실행 가능! (0) | 2025.02.11 |
|---|---|
| Docker : Django + PostgreSQL 개발환경 구축하기 (0) | 2024.09.24 |
| Docker-compose로 Django 개발환경 만들기 (0) | 2024.09.22 |
댓글