DEVOPS · DOCKER
Docker 기본기와 운영 주제 학습 기록.
Docker 기본기 학습
> 리눅스의 Namespace + Cgroups 기반으로 컨테이너를 쉽게 만들고 실행하고 배포하도록 도와주는 플랫폼 우리가 직접 컨테이너를 만드려면 - Namespace 생성 - Cgroup 설정 - 파일시스템 구성 - 프로세스 실행 등을 직접 해야 하는데, 도커가 이 모든 과정을 지능적으로 자동화해주는 도구 K8s를 하기 위해 반드시 알아야 할 개념은 아...
Dockerfile의 HeatlCheck
Dockerfile HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \ CMD curl -f http://localhost:${PORT:-8080}/actuator/health || exit 1 단순 상태 표시용 데코레이션이 아니라, 컨테이너 오케스트레이션(순서 제어, 복구)의...
Docker에서 좀비 프로세스가 쌓이는 이유 — PID 1 문제와 tini
운영 중인 문서 파싱 서비스 인스턴스에 들어가서 ps를 쳤다가, soffice.bin 가 화면을 가득 채우는 걸 봤다. 세어보니 420개였다. 컨테이너가 뜬 지 일주일밖에 안 됐는데 좀비가 420마리. 처음엔 "좀비는 메모리도 거의 안 먹는다는데 그냥 둬도 되나?" 싶었다. 그런데 좀비는 PID 슬롯을 하나씩 점유한다. 계속 쌓이면 결국 PID가 고갈되고,...
리눅의에서 프로세스를 격리시키는 방법
> Namespaces + Cgroups = 컨테이너 격리의 기반 이 두 개를 이해하면 "컨테이너가 어떻게 격리되는지"와 "Docker / K8s가 왜 가능한지"를 완전히 이해하게 됨 - Namespace는 프로세스마다 보이는 세계를 다르게 만드는 기술 - 예를 들어 A 프로세스는 PID 1로 보이는데, B 프로세스는 A를 PID 500으로 봄 - 파일 시...