DOCS/journey/troubleshooting/250924_happybell80_container_user_mapping.md
Claude-51124 22557e7132 docs: 오래된 트러블슈팅 아카이브 및 구조 정리
- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동
- book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서)
- 빈 폴더 제거 (journey/assets/*)
2025-11-17 14:06:05 +09:00

1.8 KiB

Docker 컨테이너 사용자 매핑 불일치 문제

날짜: 2025-09-24 작성자: happybell80 증상: robeing 계정에서 Docker 외부 프로세스 실행으로 오인됨

문제 상황

  • ps aux | grep "^robeing"으로 robeing 계정 프로세스 확인 시 2개 발견
  • skill-slack과 skill-embedding 컨테이너가 robeing(UID 1000) 계정으로 매핑됨
  • 다른 컨테이너들은 root나 UID 999로 실행

원인 분석

Docker 컨테이너의 사용자 매핑이 일관되지 않음:

# 각 컨테이너의 실제 사용자 확인
docker top rb8001              # root
docker top skill-email         # root
docker top robeing-skill-news  # root
docker top robeing_monitor     # UID 999
docker top skill-slack         # robeing (UID 1000)
docker top skill-embedding     # robeing (UID 1000)

해결 과정

  1. Docker 컨테이너 확인: docker ps로 정상 실행 확인
  2. 프로세스 추적: sudo pwdx <PID>로 작업 디렉토리가 /app임을 확인
  3. 컨테이너 내부 확인: docker top <container>로 사용자 매핑 파악
  4. Docker 환경 확인: /proc/<PID>/root/.dockerenv 존재 확인

교훈

  1. 로그 확인 순서 준수: 실시간 → 컨테이너 내부 → 백업 → Docker JSON
  2. 사용자 매핑 일관성: 모든 컨테이너가 동일한 사용자 정책 적용 필요
  3. 추측 금지: 로그 확인 없이 "Docker 외부 실행"이라 단정하면 안됨
  4. 도구 활용: docker top으로 컨테이너별 사용자 매핑 확인 필수

권장사항

  • 모든 컨테이너의 사용자 매핑을 통일하여 혼동 방지
  • 프로세스 분석 시 반드시 docker top으로 컨테이너 여부 확인
  • 시스템 관리 시 모든 로그 위치 체계적 확인 필요