도커 컨테이너 10년

2 weeks ago 12

  • 도커(Docker) 는 애플리케이션 스택을 손쉽게 조립하고(docker build), 실행 파일과 데이터를 빠르게 배포하며(docker push), 여러 애플리케이션을 격리된 환경에서 동시에 실행할 수 있게 하는 개발 도구임
  • 2013년 첫 출시 이후 Netflix, Proxima Fusion, BalenaOS 등 다양한 산업에서 채택되었으며, Docker Hub에는 1,400만 개 이상의 이미지가 등록되고 매달 110억 회 이상 다운로드
  • 리눅스의 네임스페이스(namespaces) 기능을 활용해 가상머신보다 가볍고 효율적인 격리 환경을 제공하며, BuildKit·containerd 등으로 구성된 모듈형 아키텍처로 발전함
  • macOS·Windows 환경에서도 동일한 경험을 제공하기 위해 HyperKit·LinuxKit·vpnkit을 결합해 리눅스 컨테이너를 투명하게 실행하도록 설계됨
  • 현재는 ARM·RISC-V·GPU·TEE(신뢰 실행 환경) 등 이기종 하드웨어와 AI 워크로드를 지원하며, 클라우드·데스크톱·엣지 전반에서 표준 개발 인프라로 자리 잡음

도커의 기술적 기반과 진화

  • 도커는 애플리케이션과 모든 의존성을 파일시스템 이미지(컨테이너) 로 패키징해, 리눅스가 설치된 어떤 머신에서도 동일하게 실행 가능
    • docker build, docker push, docker run 명령으로 빌드·배포·실행이 일관된 워크플로우를 형성
    • GitHub에는 340만 개 이상의 Dockerfile이 존재, 범용 배포 메커니즘으로 자리함
  • 리눅스 커널의 네임스페이스 기능을 활용해 프로세스·파일시스템·네트워크를 분리, 가상머신 대비 낮은 오버헤드로 격리 제공
    • 2001년 이후 리눅스는 7종의 네임스페이스를 지원하며, 도커는 이를 조합해 경량 격리와 호환성을 동시에 달성
  • 도커는 클라이언트-서버 구조로 동작하며, dockerd 데몬이 컨테이너·이미지·네트워크·볼륨을 관리
    • 2015년 이후 buildkit(이미지 빌드)과 containerd(컨테이너 실행)로 분리되어 모듈화됨
  • 컨테이너 이미지는 계층형 파일시스템으로 구성되며, OCI(Open Container Initiative) 표준에 따라 상호운용 가능
    • 해시 기반 콘텐츠 주소 저장으로 불변성과 무결성 보장, overlayfs·btrfs·ZFS 등 최신 파일시스템을 활용

리눅스 외 플랫폼으로의 확장

  • macOS·Windows에서도 동일한 사용성을 제공하기 위해 하이퍼바이저와 네임스페이스를 결합한 구조로 재설계
    • HyperKit을 통해 사용자 공간에서 리눅스 커널을 실행하고, LinuxKit으로 최소 구성의 리눅스 배포판을 내장
    • 모든 구성요소를 컨테이너로 실행해 부팅 시 루트 네임스페이스에 프로세스가 남지 않도록 설계
  • 네트워킹은 SLIRPvpnkit(OCaml 기반) 을 이용해 macOS/Windows 네트워크 스택과 직접 통신
    • 이 방식으로 기업용 방화벽 문제를 해결하고, 베타 테스트 중 버그 리포트를 99% 이상 감소시킴
    • eBPF 기반 포트 포워딩으로 localhost에서 바로 접근 가능한 개발 환경 구현
  • 파일시스템 공유는 virtio-fsFUSE 요청을 통해 구현, 호스트 파일을 그대로 접근 가능
  • WSL2(Windows Subsystem for Linux 2) 도입 이후, Windows에서도 리눅스 VM 기반으로 도커가 완전 통합되어 실행

새로운 개발 워크플로우

  • 다중 CPU 아키텍처 지원: Intel·ARM·POWER·RISC-V 등 다양한 CPU용 이미지를 하나로 관리
    • binfmt_misc와 QEMU를 이용해 단일 호스트에서 다중 아키텍처 빌드 지원
    • Apple의 Rosetta 통합으로 ARM·Intel 컨테이너 병행 실행 가능
  • 비밀정보 관리: 소켓 포워딩으로 ssh-agent 등 키 관리 시스템을 컨테이너 내부에서 안전하게 사용
    • TEE(Trusted Execution Environment) 통합으로 호스트 OS조차 접근 불가한 보안 실행 지원
    • Confidential Containers 그룹과 협력해 클라우드 원격 TEE 환경과 연동
  • AI·GPU 워크로드 지원: 2023년부터 CDI(Container Device Interface) 도입
    • GPU 드라이버·라이브러리 버전 충돌 문제를 해결하기 위해 컨테이너 시작 시 동적 바인드 마운트 수행
    • GPU 간 호환성은 아직 제한적이며, 이식 가능한 인터페이스 표준화가 진행 중

도커의 현재와 미래

  • 도커는 2013년 이후 클라우드·데스크톱·엣지 전반에서 핵심 개발 인프라로 자리
    • Docker Hub는 매달 110억 회 이상 이미지 다운로드, 수백만 개발자가 일상적으로 사용
  • CNCFOCI가 핵심 구성요소와 이미지 포맷을 관리하며, 다수의 독립 구현체가 공존
  • 2025년 기준 개발 워크플로우는 CI/CD·IDE 언어 서버·AI 코딩 에이전트와 통합
    • 기본적인 build·run 경험은 유지하면서, 다양한 환경에서의 샌드박싱과 자동화를 강화
  • 도커의 목표는 “보이지 않는 동반자”로서 개발자가 더 빠르게 코드를 배포하고, AI 중심의 현대적 워크플로우에서도 유연히 확장 가능하도록 지원하는 것임

Read Entire Article