Day 6 - Docker Compose
Day 6 - Docker Compose
목차
1. Docker Compose 설치
여러 컨테이너를 하나의 서비스로 정의하고 관리
# 버전 확인
docker compose version
# 설치 (없는 경우)
sudo apt install docker-compose-plugin
# 수동 업데이트
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-linux-x86_64 \
-o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
2. WordPress + MySQL 구성
docker-compose.yml
services:
mysql:
image: mysql:8
volumes:
- db:/var/lib/mysql
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
networks:
- mynet-bridge-2
wordpress:
image: wordpress:latest
ports:
- "8585:80"
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_NAME: mydb
WORDPRESS_DB_PASSWORD: password
depends_on:
- mysql
networks:
- mynet-bridge-2
web:
image: nginx:1.29.3-alpine
ports:
- "8383:80"
networks:
mynet-bridge-2:
external: true
volumes:
db:
서비스 구성
| 서비스 | 이미지 | 포트 | 역할 |
|---|---|---|---|
| mysql | mysql:8 | 3306 | 데이터베이스 |
| wordpress | wordpress:latest | 8585:80 | CMS |
| web | nginx:1.29.3-alpine | 8383:80 | 웹서버 |
3. 실행 및 관리
# 네트워크 먼저 생성
docker network create mynet-bridge-2
# 실행
docker compose up -d
# 상태 확인
docker compose ps
# 로그 확인
docker compose logs -f
# 중지
docker compose down
# 볼륨까지 삭제
docker compose down -v
접속
| 서비스 | URL |
|---|---|
| WordPress | http://localhost:8585 |
| Nginx | http://localhost:8383 |