Docker Compose 컨테이너 로그 확인·재시작 명령어 모음
언제 사용하나
docker compose up으로 띄운 서비스가 죽거나 응답이 없을 때, 로그를 보고 필요한 만큼만 재시작하고 싶을 때.
1. 지금 무엇이 떠 있는지 확인
docker compose ps
# 종료된 컨테이너까지 포함
docker compose ps -aSTATUS가 Restarting이면 컨테이너가 계속 죽고 다시 뜨는 상태다. 로그부터 본다.
2. 로그 확인
# 전체 서비스 로그 실시간
docker compose logs -f
# 특정 서비스만
docker compose logs -f api
# 최근 200줄만 (긴 로그 다 안 뜨게)
docker compose logs --tail 200 api
# 시간 표시 + 최근 10분치
docker compose logs -t --since 10m api여러 서비스를 한 번에 보려면 이름을 나열한다.
docker compose logs -f api worker3. 재시작 (범위별로 골라 쓰기)
# 프로세스만 재시작. 설정/이미지 변경은 반영되지 않음
docker compose restart api
# 컨테이너를 다시 만들어서 올림. compose 파일/환경변수 변경 반영
docker compose up -d api
# 이미지까지 다시 빌드해서 올림. 코드 변경 반영
docker compose up -d --build api
# 강제로 컨테이너 재생성
docker compose up -d --force-recreate api기준: 프로세스만 껐다 켜기 → restart, compose 설정 바뀜 → up -d, 코드/Dockerfile 바뀜 → up -d --build.
4. 안 뜰 때 안으로 들어가 보기
# 실행 중인 컨테이너에 셸 접속
docker compose exec api sh
# 컨테이너가 계속 죽어서 exec이 안 될 때: 일회성 컨테이너로 실행
docker compose run --rm api sh5. 환경변수와 설정 확인
# 최종적으로 적용된 compose 설정 확인 (변수 치환 결과 포함)
docker compose config
# 컨테이너 안의 환경변수 확인
docker compose exec api env6. 정리
# 컨테이너/네트워크 정리 (볼륨은 유지)
docker compose down
# 볼륨까지 삭제 — DB 데이터가 날아간다
docker compose down -v주의사항
docker compose down -v는 named volume을 지운다. 로컬 DB 데이터가 사라지므로 습관적으로 붙이지 않는다.restart는 이미지와 compose 설정을 다시 읽지 않는다. "고쳤는데 반영이 안 된다"의 대부분이 이 경우다.logs -f만으로는 원인이 안 보일 때가 많다.docker compose ps -a로 종료 코드를 먼저 확인한다.
활용 팁
- 로그를 파일로 남겨 두면 재시작 후에도 비교할 수 있다.
docker compose logs --no-color --tail 1000 api > /tmp/api.log - Compose v1(
docker-compose)을 쓰는 환경이라면 위 명령의docker compose를docker-compose로 바꿔서 실행한다.
댓글 0개
아직 댓글이 없습니다.
