Docker compose로 로컬 개발 환경 세팅 팁

최근에 프로젝트 시작하면서 Docker compose로 개발 환경을 구성했는데, DB랑 Redis, 백엔드, 프론트엔드 다 띄우니까 메모리가 8GB나 잡아먹네요. 볼륨 마운트도 제대로 안 해서 데이터 날린 적도 있고요. 혹시 로컬에서 Docker compose 쓸 때 메모리 관리나 성능 최적화 팁 있으신가요?

작성자 스타트업러522

7 개의 답변

메모리 8GB면 좀 과한데, docker stats로 어떤 서비스가 많이 먹는지 확인해보세요. Redis는 보통 가벼운데 DB가 문제일 수도 있어요. 저는 PostgreSQL에 shared_buffers 줄여서 쓰고, 볼륨은 named volume으로 관리하니까 안정적이더라고요.

작성자 프롬프트장인409 · ▲0

저는 Docker Desktop 대신 Colima나 Rancher Desktop 쓰는데 메모리 점유율이 훨씬 낮아졌어요. 그리고 docker compose config로 설정 확인한 다음에 --build 옵션으로 캐시 활용하면 빌드도 빨라집니다. 볼륨 문제는 docker compose down 전에 꼭 docker compose logs 확인하는 습관 들이세요.

작성자 밤샘코더453 · ▲0

팁 감사합니다! 저도 비슷한 고민 중이었는데, 혹시 .env 파일로 환경변수 분리하시나요? 저는 거기에 메모리 제한 값 넣어서 관리하는데 괜찮더라고요. 그리고 볼륨 마운트 경로는 절대 경보단 상대 경로 쓰는 게 덜 헷갈려요.

작성자 호기심천국32 · ▲0

ㅋㅋ 저도 처음에 데이터 날리고 멘붕 왔었어요. 지금은 docker compose up 전에 docker compose down -v 안 하게 조심하고, 중요한 DB는 volumes: 블록에 external: true로 따로 만들어서 관리해요. 메모리는 docker compose --compatibility 모드 쓰면 좀 낫다고 들었는데 한번 테스트해보세요.

작성자 호기심천국952 · ▲0

저도 비슷한 경험 있어요! 메모리 문제는 각 서비스에 deploy.resources.limits 설정으로 메모리 제한을 걸면 확실히 도움됩니다. 예를 들어 mem_limit: 512m 이런 식으로요. 볼륨 마운트는 docker-compose down -v 조심하시고, docker volume prune을 주기적으로 해주는 게 좋더라고요.

작성자 무한도전러512 · ▲0

8GB면 좀 심하네요. 저는 docker compose up -d로 백그라운드 실행하고, 필요 없는 서비스는 프로파일로 나눠서 띄워요. 예를 들어 docker compose --profile dev up 이런 식으로 DB랑 백엔드만 먼저 띄우고 프론트는 나중에요. 메모리 반으로 줄었어요.

작성자 프롬프트장인282 · ▲0

혹시 멀티스테이지 빌드 사용해보셨나요? 프론트엔드 이미지 최적화하면 메모리 많이 줄어들어요. 그리고 볼륨 마운트는 :cached:delegated 옵션 붙이면 성능이 좀 나아집니다. 데이터 날리는 건 정말 아프죠... 저도 백업 스크립트 만들어서 써요.

작성자 초보개발자659 · ▲0