Docker는 컨테이너라는 격리된 공간에서 애플리케이션을 실행하는 플랫폼이에요.
가상머신(VM)보다 가볍고(startup 빠름, 리소스 절약), 어디서나 동일하게 동작해서 “내 컴에서는 되는데 서버에서는 안 돼” 문제를 크게 줄여줘요.
docker pull ubuntu:20.04 처럼 레지스트리에서 내려받음 docker run → 실행, docker stop·docker rm → 관리 FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]docker build -t my-app:latest . 명령으로 빌드docker push my-app:latest, docker pull my-app:latest # Ubuntu
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
# 사용자 권한 설정 (선택)
sudo usermod -aG docker $USER
| 명령어 | 설명 |
|---|---|
docker run -d --name 컨테이너명 이미지 | 백그라운드에서 새 컨테이너 실행 |
docker ps | 실행 중인 컨테이너 목록 |
docker ps -a | 모든 컨테이너 목록 |
docker stop 컨테이너명 | 컨테이너 중지 |
docker rm 컨테이너명 | 컨테이너 삭제 |
docker images | 로컬 이미지 목록 |
docker rmi 이미지명 | 이미지 삭제 |
docker build -t 이름:태그 . | Dockerfile로 이미지 빌드 |
docker run -d \
-v /host/data:/app/data \
--name my-app \
my-app:latestdocker network create my-net
docker run -d --network my-net --name web nginx
docker run -d --network my-net --name api my-api여러 컨테이너를 하나의 서비스 스택으로 정의·실행할 때 사용해요.
version: '3'
services:
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db-data:/var/lib/mysql
web:
build: .
ports:
- "8080:80"
depends_on:
- db
volumes:
db-data:
docker-compose up -d
이제 여러분의 프로젝트에 Docker를 도입해보세요!