Docker 시니어 기술면접

Docker 시니어 (7년+) 프레임워크 5문항 조회수 117 · 2026-05-04 (월) 03:10:54
1 Docker Storage Driver
Hard

Q. Docker의 스토리지 드라이버(overlay2, aufs, devicemapper, btrfs, zfs)의 동작 원리와 성능 특성을 비교 설명해주세요. 특히 overlay2의 Copy-on-Write 메커니즘과 inode 소진 문제, 그리고 대규모 컨테이너 환경에서 스토리지 드라이버 선택 기준을 설명해주세요.

A. 모범답안

overlay2는 Linux 커널의 OverlayFS를 사용하며, 상위 레이어와 하위 레이어를 통합하여 단일 뷰를 제공합니다. CoW 메커니즘은 파일 수정 시 상위 레이어로 복사하여 원본을 보존하며, 대용량 파일 수정 시 성능 저하가 발생할 수 있습니다. inode 소진 문제는 많은 작은 파일을 다룰 때 발생하며, 파일시스템의 inode 수를 늘리거나 볼륨 마운트로 해결합니다. devicemapper는 블록 레벨에서 동작하여 안정적이지만 느리고, btrfs/zfs는 스냅샷과 압축 기능이 뛰어나지만 복잡도가 높습니다. 프로덕션 환경에서는 커널 지원이 우수하고 성능이 검증된 overlay2를 권장하며, I/O 집약적 워크로드에서는 볼륨 사용을 고려해야 합니다.

핵심 포인트
  • • overlay2의 OverlayFS 기반 동작과 CoW 메커니즘
  • • inode 소진 문제와 해결 방안
  • • 각 스토리지 드라이버의 성능 특성 비교
  • • 프로덕션 환경에서의 스토리지 전략
Follow-up 질문

컨테이너에서 대용량 로그 파일을 생성하는 애플리케이션이 있을 때, 스토리지 성능 문제를 해결하기 위한 구체적인 방법은 무엇인가요?

2 Docker Volume & Bind Mount
Medium

Q. Docker의 Volume, Bind Mount, tmpfs mount의 차이점과 내부 동작 원리를 설명하고, 각각의 사용 사례와 성능 특성을 비교해주세요. 특히 데이터베이스 컨테이너나 상태 유지 애플리케이션에서 어떤 방식을 선택해야 하는지 설명해주세요.

A. 모범답안

Volume은 Docker가 관리하는 스토리지로 /var/lib/docker/volumes에 저장되며, 호스트 파일시스템과 독립적으로 관리되어 이식성이 높습니다. Bind Mount는 호스트의 특정 경로를 직접 마운트하여 파일 공유가 용이하지만 호스트 의존성이 생깁니다. tmpfs mount는 메모리에 데이터를 저장하여 매우 빠르지만 휘발성이며 컨테이너 재시작 시 소멸됩니다. 데이터베이스 컨테이너는 Volume을 사용하여 데이터 영속성과 백업 용이성을 확보하고, 개발 환경의 소스 코드 동기화는 Bind Mount를, 임시 캐시나 세션 데이터는 tmpfs를 사용합니다. Volume은 volume driver를 통해 원격 스토리지 연결도 가능하여 확장성이 뛰어납니다.

핵심 포인트
  • • Volume의 Docker 관리 특성과 이식성
  • • Bind Mount의 호스트 직접 연결 방식
  • • tmpfs의 메모리 기반 휘발성 스토리지
  • • 워크로드별 적절한 마운트 방식 선택
Follow-up 질문

Named Volume과 Anonymous Volume의 차이점과 각각의 생명주기 관리 방법은 무엇인가요?

3 Docker Image Build Optimization
Hard

Q. Docker 이미지 크기를 최소화하고 빌드 보안을 강화하기 위한 전략을 설명해주세요. distroless 이미지, alpine 기반 이미지, scratch 이미지의 차이점과 각각의 장단점, 그리고 이미지 취약점 스캔 도구와 SBOM(Software Bill of Materials) 활용 방법을 포함해주세요.

A. 모범답안

Alpine 이미지는 musl libc 기반으로 5MB 정도로 매우 작지만, glibc 의존성 문제와 일부 바이너리 호환성 이슈가 있습니다. distroless 이미지는 Google이 제공하며 애플리케이션 실행에 필요한 최소 런타임만 포함하여 쉘이 없어 공격 표면이 작습니다. scratch 이미지는 완전히 빈 이미지로 정적 링크된 바이너리(Go 등)에 적합하며 가장 안전하지만 디버깅이 어렵습니다. Trivy, Grype, Snyk 등의 취약점 스캔 도구로 CVE를 탐지하고, SBOM은 이미지 내 모든 패키지와 의존성을 추적하여 공급망 보안을 강화합니다. 프로덕션에서는 distroless를 권장하며, .dockerignore 활용, 불필요한 패키지 제거, 최소 권한 사용자 실행이 중요합니다.

핵심 포인트
  • • Alpine, distroless, scratch 이미지의 특성과 사용 사례
  • • 이미지 크기 최적화 기법
  • • 취약점 스캔 도구와 SBOM 활용
  • • 보안 강화를 위한 베스트 프랙티스
Follow-up 질문

멀티 아키텍처(amd64, arm64) 이미지를 빌드하고 배포하기 위한 Docker Buildx와 manifest 전략을 설명해주세요.

4 Docker Registry & Distribution
Medium

Q. Docker Registry의 아키텍처와 이미지 pull/push 과정에서의 레이어 다운로드 메커니즘을 설명해주세요. 특히 Harbor, Nexus, ECR 같은 프라이빗 레지스트리의 선택 기준과 이미지 복제, 가비지 컬렉션, 접근 제어 전략을 포함해주세요.

A. 모범답안

Docker Registry는 OCI Distribution Spec을 따르며, 이미지를 manifest와 레이어 blob으로 분리하여 저장합니다. pull 시 manifest를 먼저 가져와 필요한 레이어 목록을 확인하고, 없는 레이어만 병렬로 다운로드하여 효율성을 높입니다. Harbor는 오픈소스로 취약점 스캔, 이미지 서명, 복제 기능이 강력하며, Nexus는 다양한 아티팩트 저장소 통합이 가능하고, ECR은 AWS 생태계와의 통합이 뛰어납니다. 이미지 복제는 지리적 분산과 재해 복구를 위해 필수이며, 가비지 컬렉션은 참조되지 않는 레이어를 정기적으로 삭제하여 스토리지를 절약합니다. RBAC와 프로젝트 기반 격리로 접근 제어를 구현하고, webhook으로 CI/CD 파이프라인과 통합합니다.

핵심 포인트
  • • Registry의 manifest와 레이어 기반 아키텍처
  • • 이미지 pull/push의 병렬 다운로드 메커니즘
  • • 프라이빗 레지스트리 솔루션 비교
  • • 복제, 가비지 컬렉션, 접근 제어 전략
Follow-up 질문

Docker Content Trust와 Notary를 사용한 이미지 서명 및 검증 프로세스를 설명해주세요.

5 Docker Container Runtime
Hard

Q. Docker의 컨테이너 런타임 아키텍처에서 dockerd, containerd, runc의 역할과 상호작용을 설명하고, CRI(Container Runtime Interface) 표준과 Kubernetes에서 containerd를 직접 사용하는 방식의 장점을 설명해주세요. 또한 gVisor, Kata Containers 같은 대안 런타임의 보안 격리 메커니즘을 비교해주세요.

A. 모범답안

dockerd는 Docker API를 제공하는 데몬이고, containerd는 이미지 관리와 컨테이너 생명주기를 담당하는 고수준 런타임이며, runc는 OCI 스펙에 따라 실제 컨테이너를 생성하는 저수준 런타임입니다. dockerd가 containerd를 호출하고, containerd가 runc를 실행하여 namespace와 cgroup을 설정합니다. CRI는 Kubernetes가 다양한 런타임과 통신하는 표준 인터페이스로, containerd를 직접 사용하면 dockerd 레이어가 제거되어 오버헤드가 감소하고 성능이 향상됩니다. gVisor는 사용자 공간 커널(runsc)로 시스템 콜을 가로채 격리를 강화하지만 성능이 저하되고, Kata Containers는 경량 VM을 사용하여 하드웨어 수준 격리를 제공하지만 오버헤드가 더 큽니다. 멀티 테넌트 환경에서는 보안이 중요하므로 대안 런타임 고려가 필요합니다.

핵심 포인트
  • • dockerd, containerd, runc의 계층 구조와 역할
  • • CRI 표준과 containerd 직접 사용의 이점
  • • gVisor와 Kata Containers의 격리 메커니즘
  • • 보안과 성능 트레이드오프 분석
Follow-up 질문

Kubernetes 1.24 이후 dockershim 제거가 기존 클러스터에 미치는 영향과 마이그레이션 전략을 설명해주세요.

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!