컨테이너 용어 사전
학습노트에서 용어를 누르면 여기로 옵니다. 설정과 기본값의 의미, 그리고 그것이 잘못됐을 때 실제로 무엇이 터지는지를 함께 정리했습니다.
19개 용어 · 상세 정리 19개
기초3
이미지4
- 이미지image · 레이어 · OCI
읽기 전용 템플릿. 겹겹이 쌓인 레이어로 이뤄지고, 같은 레이어는 한 벌만 저장된다.
- union filesystemOverlayFS · copy-up · 쓰기 레이어
여러 레이어를 겹쳐 하나로 보이게 하는 파일시스템. 쓰기가 일어나면 파일을 통째로 복사한다.
- 빌드 캐시cache invalidation · 레이어 캐시 · cache mount
COPY/ADD는 파일 메타데이터 체크섬, RUN은 명령 문자열만 본다. 한 번 깨지면 아래 전부 재실행된다.
- 태그와 다이제스트latest · digest · imagePullPolicy
태그는 언제든 다른 이미지를 가리킬 수 있다. latest는 최신이라는 뜻이 아니다.
빌드3
런타임6
- PID 1init · tini · 좀비 프로세스 · SIGTERM
컨테이너 안 프로세스는 PID 1이 된다. 핸들러가 없으면 SIGTERM이 무시된다.
- 종료 코드exit code · 137 · 143 · 127
128 + 시그널 번호 규칙. 137이면 SIGKILL이고, OOMKilled인지부터 가른다.
- OOMKilledOOM Killer · 메모리 초과 · MaxRAMPercentage
메모리 제한을 넘겨 커널이 죽인 상태. 애플리케이션 로그에 아무것도 남지 않는다.
- 볼륨volume · 바인드 마운트 · tmpfs
컨테이너를 지워도 남는 저장소. union filesystem을 거치지 않아 쓰기가 빠르다.
- 컨테이너 네트워크bridge · host 네트워크 · 포트 매핑
컨테이너 안의 localhost는 자기 자신이다. 이름으로 찾으려면 사용자 정의 네트워크가 필요하다.
- 컨테이너 로그json-file · 로그 드라이버 · max-size
stdout/stderr를 도커가 수집한다. 기본 드라이버는 제한이 없어 디스크를 채운다.
보안3
- 베이스 이미지alpine · distroless · scratch · slim
작을수록 취약점도 적다. 다만 alpine의 musl, distroless의 디버깅 제약을 함께 본다.
- 컨테이너 보안USER · privileged · capability · docker.sock
기본이 root다. --privileged와 docker 소켓 마운트는 사실상 호스트 권한을 주는 것이다.
- 취약점 스캔trivy · docker scout · SBOM · CIS Benchmark
이미지 안 패키지를 CVE와 대조한다. 0으로 만들려 하지 말고 실제로 쓰는 경로부터 본다.