Docker Compose watch는 2026년에도 개발자가 실무에서 바로 검색할 가능성이 높은 주제입니다. 이유는 단순합니다. 로컬 컨테이너 개발에서 “코드를 저장할 때마다 자동 반영되게 만들고 싶다"는 요구는 계속 반복되기 때문입니다. 특히 bind mount만으로는 성능과 호환성 문제가 남는 프로젝트에서는 Compose watch가 생각보다 큰 차이를 만듭니다.
Docker Docs는 watch를 편집과 저장에 따라 실행 중인 Compose 서비스를 자동 업데이트하고 미리보기할 수 있게 해 주는 속성으로 설명합니다. 또한 bind mount를 대체하기보다, 개발용 보완 수단이라고 명시합니다.
이런 분께 추천합니다 #
- 컨테이너 안에서 개발하지만 파일 변경 반영이 번거로운 개발자
- bind mount 성능 문제를 겪는 팀
docker compose watch,compose watch 설정,bind mount 차이를 정리하고 싶은 독자
Docker Compose watch란 무엇인가요? #
Compose watch는 compose.yaml 안에 watch 규칙을 선언하고, docker compose up --watch 또는 docker compose watch로 파일 변경을 감시해 서비스 업데이트를 자동화하는 기능입니다.
공식 문서 기준으로 핵심은 아래와 같습니다.
- 경로별 감시 규칙 설정
- 변경 시 동작(action) 지정
.dockerignore규칙 적용- 서비스별 선택적 적용
즉, “전체 프로젝트를 무조건 마운트"하는 것이 아니라, 필요한 파일만 더 세밀하게 다루는 접근입니다.
bind mount와 무엇이 다른가요? #
Docker Docs는 watch가 bind mount를 완전히 대체하지 않는다고 설명합니다. 둘은 역할이 조금 다릅니다.
| 항목 | bind mount | compose watch |
|---|---|---|
| 기본 개념 | 호스트 디렉터리를 그대로 연결 | 변경을 감시해 선택적으로 반영 |
| 세밀한 제어 | 상대적으로 제한적 | ignore, target, action 설정 가능 |
| 대형 파일 트리 대응 | 때때로 비효율적 | 특정 경로만 감시 가능 |
| 멀티플랫폼 대응 | 아티팩트 충돌 가능 | node_modules 등 제외에 유리 |
특히 Node.js 프로젝트처럼 node_modules/를 그대로 공유하면 비효율이 커지는 경우 watch가 더 유리할 수 있습니다.
언제 특히 효과가 큰가요? #
- 프런트엔드 개발 서버
- Node.js 또는 Python 웹앱
- 컨테이너 안에서만 실행되는 로컬 개발 환경
- OS와 컨테이너 아키텍처 차이로 bind mount가 불편한 프로젝트
반대로 매우 단순한 정적 파일 개발처럼 bind mount만으로 충분한 경우도 있습니다.
기본 설정은 어떻게 하나요? #
Docker Docs 예시를 실무적으로 단순화하면 아래처럼 시작할 수 있습니다.
|
|
그 다음 실행은 아래처럼 합니다.
|
|
혹은 애플리케이션 로그와 watch 로그를 분리하고 싶다면 다음처럼 쓸 수 있습니다.
|
|
실무 팁 #
1. 모든 서비스를 watch에 넣지 마세요 #
공식 문서도 일부 서비스만 watch에 넣는 사례를 설명합니다. 실제로도 프런트엔드나 앱 서버만 watch하고, DB나 메시지 큐는 고정하는 편이 낫습니다.
2. node_modules 같은 대형 경로는 무조건 다시 생각하세요
#
문서가 직접 언급하듯, 네이티브 코드가 포함될 수 있는 디렉터리는 플랫폼 이슈를 만들 수 있습니다. watch의 ignore 규칙이 여기서 특히 유용합니다.
3. 컨테이너 사용자 권한을 확인하세요 #
Docker Docs는 대상 경로에 쓰기 권한이 필요하다고 설명합니다. COPY --chown 같은 패턴이 필요한 이유도 여기에 있습니다.
자주 묻는 질문 #
docker compose watch와 docker compose up --watch는 무엇이 다른가요?
#
공식 CLI 문서 기준으로 둘 다 watch 관련 기능이지만, up --watch는 빌드와 실행을 함께 시작하는 쪽에 가깝고, docker compose watch는 별도 watch 명령으로 사용할 수 있습니다.
언제 rebuild를 써야 하나요? #
의존성 파일이나 이미지 빌드 결과에 영향을 주는 파일은 rebuild가 자연스럽고, 앱 소스처럼 런타임 동기화만 하면 되는 파일은 sync가 일반적으로 유리합니다.
검색형 키워드로 왜 좋은가요? #
docker compose watch란docker compose watch 사용법compose watch bind mount 차이docker compose up --watchcompose watch node_modules
즉, 소개형 검색과 문제 해결형 검색이 동시에 붙습니다.
추천 카테고리 #
이 글은 software-dev 카테고리에 두는 것이 가장 자연스럽습니다. 개발 환경과 팀 생산성에 직접 연결되는 주제이기 때문입니다.
핵심 요약 #
- Compose watch는 bind mount를 대체한다기보다, 개발용 파일 반영을 더 세밀하게 제어하는 도구입니다.
- 대형 디렉터리와 멀티플랫폼 문제가 있는 프로젝트일수록 효과가 큽니다.
- 모든 서비스를 감시하기보다, 필요한 서비스와 경로만 선택적으로 watch하는 편이 좋습니다.
참고 자료 #
- Use Compose Watch: https://docs.docker.com/compose/how-tos/file-watch/
- docker compose watch CLI: https://docs.docker.com/reference/cli/docker/compose/watch/