docker compose down
docker compose up --build
# DB 초기화
- 1. 특정 서비스(db)의 컨테이너와 볼륨을 함께 삭제
# -v: 볼륨(Volume) 삭제 옵션. 이 옵션이 없으면 데이터는 호스트에 남습니다.
docker compose down -v db
- 2. 삭제 후 다시 실행
# 데이터베이스 엔진이 비어있는 볼륨을 확인하고 초기화 프로세스를 가동합니다.
docker compose up -d db
# 빌드
- 1. 이미지를 새로 빌드하고 컨테이너 실행
# 소스 코드나 Dockerfile 수정 사항을 즉시 반영할 때 사용
docker compose up --build
- 2. 백그라운드 실행 + 빌드 강제
docker compose up -d --build
- 3. 특정 서비스만 다시 빌드해서 실행
# 전체를 빌드하지 않고 'api' 서비스만 갱신
docker compose up -d --build api
- 4. 서비스 중지 및 리소스 삭제
# -v: 익명 볼륨까지 깔끔하게 삭제
docker compose down -v
```
---
## 핵심 명령어
---
### 이미지 관리 및 빌드 (Image & Buildx)
- 2026년부터는 docker build 실행 시 내부적으로 docker buildx가 기본 엔진으로 동작
- 멀티 플랫폼 지원과 캐시 최적화가 핵심
# 1. 멀티 플랫폼 이미지를 빌드하고 레지스트리에 푸시
# --platform: linux/amd64와 linux/arm64 환경 모두를 지원하도록 빌드
# --push: 빌드 완료 후 즉시 레지스트리에 업로드
docker buildx build --platform linux/amd64,linux/arm64 -t my-app:latest --push .
# 2. 이미지 레이어 및 취약점 즉시 확인 (Docker Scout 통합)
# quickview: 이미지의 보안 상태와 권장 수정 사항을 요약해서 출력
docker scout quickview my-app:latest
# 3. 사용하지 않는 이미지 정리
# -a: 태그가 없는 이미지뿐만 아니라 사용 중이지 않은 모든 이미지 삭제
docker image prune -a
# 1. 컨테이너 생성 및 실행
# -d: 백그라운드 실행 (Detached mode)
# -p: 호스트 8080 포트를 컨테이너 80 포트에 바인딩
# --name: 컨테이너에 고유 이름 부여
docker container run -d -p 8080:80 --name web-server nginx:latest
# 2. 실행 중인 컨테이너에 도구 세트를 포함해 디버깅 진입
# 기존 exec와 달리, 타겟 컨테이너에 쉘이 없어도 Docker가 제공하는 디버그 환경으로 접속
docker debug web-server
# 3. 실시간 리소스 사용량 모니터링
# CPU, 메모리, 네트워크 I/O 상태를 스트리밍으로 확인
docker container stats web-server
# 1. 모든 서비스 실행
# -d: 백그라운드 모드
docker compose up -d
# 2. 실시간 코드 동기화 및 핫 리로드 (Watch Mode)
# 소스 코드 변경 시 컨테이너 내부로 자동 복사하거나 서비스를 재시작
docker compose watch
# 3. 실행 중인 서비스의 로그 확인
# -f: 실시간 로그 추적 (Follow)
docker compose logs -f app
# 1. 사용자 정의 네트워크 생성
# 브릿지 네트워크를 생성하여 컨테이너 간 격리된 통신 환경 구축
docker network create --driver bridge my-isolated-net
# 2. 볼륨 상세 정보 확인
# 데이터 보존을 위한 볼륨의 마운트 경로 및 설정 확인
docker volume inspect my-db-data
# 3. 도커 시스템 전체 리소스 점검
# 현재 도커가 사용 중인 디스크 공간의 상세 내역 출력
docker system df