본문 바로가기
DevOps 스터디 - 도커 & K8S

3주차 - Amazon linux2023 도커(Docker) 설치 패키지

by yeongki0944 2025. 3. 30.

Amazon Linux 2023 도커(Docker) 설치 패키지

 

 

패키지 요약표

분류패키지명버전주요 기능도커 내 역할

분류 패키지명 주요 기능 도커내 역할
핵심 컨테이너 런타임 docker 컨테이너 관리 플랫폼 핵심 사용자 인터페이스 및 컨테이너 오케스트레이션
핵심 컨테이너 런타임 containerd 컨테이너 런타임 컨테이너 생명주기 관리 및 이미지 관리
핵심 컨테이너 런타임 runc OCI 호환 컨테이너 실행기 저수준 컨테이너 생성 및 실행
네트워크 관리 iptables-libs 네트워크 패킷 필터링 라이브러리 컨테이너 네트워크 규칙 처리 기반
네트워크 관리 iptables-nft nftables 기반 패킷 필터링 컨테이너 네트워크 연결 및 포트 매핑
네트워크 관리 libnetfilter_conntrack 연결 추적 라이브러리 NAT 및 컨테이너 네트워크 상태 관리
네트워크 관리 libnfnetlink 커널 netfilter 인터페이스 저수준 네트워크 필터링 통신
네트워크 관리 libnftnl nftables 네트워크 필터링 라이브러리 고급 네트워크 필터링 규칙 관리
리소스 관리 libcgroup 제어 그룹 관리 라이브러리 컨테이너 리소스 제한 및 격리
이미지 처리 pigz 병렬 gzip 압축 유틸리티 컨테이너 이미지 압축/해제 가속화

 

도커 아키텍처 구성도



 

패키지 상세 기술 명세

1. docker (25.0.8-1.amzn2023.0.1)

주요 기능: 컨테이너 관리 플랫폼

기술 명세:

  • Docker Engine의 핵심 구성요소
  • 사용자 CLI 인터페이스 제공
  • REST API 기반 컨테이너 관리 인터페이스
  • 이미지 빌드 및 배포 기능
  • 컨테이너 네트워크 및 볼륨 관리 시스템

역할: 컨테이너 생성, 시작, 중지, 삭제 등의 작업을 위한 메인 인터페이스. docker daemon(dockerd)을 통해 containerd와 통신하여 컨테이너 실행을 오케스트레이션함. 다른 모든 패키지는 이 핵심 패키지를 지원하기 위한 종속성 구성요소임.

2. containerd (1.7.25-1.amzn2023.0.1)

주요 기능: 컨테이너 런타임

기술 명세:

  • OCI(Open Container Initiative) 표준 준수
  • 이미지 관리(pull, unpack, cache)
  • 컨테이너 실행 관리
  • 네임스페이스 및 cgroup 설정
  • 스토리지 드라이버 인터페이스

역할: Docker daemon과 runc 사이의 중간 계층으로, 컨테이너 생명주기 관리를 담당. 이미지 풀링, 스토리지, 네트워킹 설정 및 컨테이너 실행 상태를 관리하며 gRPC API를 통해 상위 계층과 통신.

3. runc (1.2.4-1.amzn2023.0.1)

주요 기능: OCI 호환 컨테이너 실행기

기술 명세:

  • OCI 런타임 스펙 구현체
  • 리눅스 네임스페이스 생성 및 관리
  • cgroup 할당 및 제어
  • 컨테이너 루트 파일시스템 마운트
  • 컨테이너 프로세스 생성 및 관리

역할: 컨테이너 생성에 필요한 저수준 작업 수행. 리눅스 커널의 namespaces, cgroups, seccomp, capabilities 등을 구성하여 실제 격리된 컨테이너 환경을 생성하고 실행함.

4. iptables-libs (1.8.8-3.amzn2023.0.2)

주요 기능: 네트워크 패킷 필터링 라이브러리

기술 명세:

  • 커널 netfilter 프레임워크 인터페이스
  • 패킷 검사 및 필터링 기능
  • NAT(Network Address Translation) 기능
  • 상태 기반 패킷 필터링
  • 네트워크 규칙 관리 API

역할: 도커 네트워크 스택의 기반 구성요소로, 컨테이너 네트워크 브리지 구성 및 포트 포워딩 규칙 설정을 위한 핵심 라이브러리. 컨테이너 간 또는 컨테이너-호스트 간 네트워크 통신 규칙 구현.

5. iptables-nft (1.8.8-3.amzn2023.0.2)

주요 기능: nftables 기반 패킷 필터링

기술 명세:

  • nftables 백엔드 사용 iptables 호환 인터페이스
  • 향상된 성능 및 확장성
  • 다중 테이블 지원
  • 원자적 규칙 변경
  • IPv4/IPv6 통합 처리

역할: nftables 프레임워크를 통해 컨테이너의 네트워크 격리 및 통신 규칙을 관리. 컨테이너 포트 매핑, 네트워크 네임스페이스 간 라우팅, 보안 규칙 적용에 사용됨.

6. libcgroup (3.0-1.amzn2023.0.1)

주요 기능: 제어 그룹 관리 라이브러리

기술 명세:

  • cgroup 파일시스템 인터페이스
  • 리소스 제한 구성 API
  • cgroup v1/v2 지원
  • 계층적 리소스 관리
  • 프로세스 그룹 추적

역할: 컨테이너별 리소스 제한(CPU, 메모리, 디스크 I/O, 네트워크 대역폭) 구현에 사용됨. 컨테이너 간 리소스 격리 및 공정한 자원 할당을 보장하는 기반 구성요소.

7. libnetfilter_conntrack (1.0.8-2.amzn2023.0.2)

주요 기능: 연결 추적 라이브러리

기술 명세:

  • 커널 연결 추적 테이블 액세스
  • 네트워크 연결 상태 모니터링
  • 연결 이벤트 알림
  • NAT 설정 지원
  • 연결 통계 수집

역할: 컨테이너 네트워크의 연결 상태 추적 관리. NAT 기능 구현, 방화벽 규칙 적용, 컨테이너 간 네트워크 연결성 보장에 중요한 역할 수행.

8. libnfnetlink (1.0.1-19.amzn2023.0.2)

주요 기능: 커널 netfilter 인터페이스

기술 명세:

  • 커널-사용자 공간 통신 프레임워크
  • 저수준 netlink 소켓 처리
  • netfilter 서브시스템 연결 처리
  • 비동기 이벤트 처리
  • 메시지 큐 관리

역할: netfilter 커널 서브시스템과의 통신을 위한 저수준 라이브러리로, 네트워크 필터링을 위한 기반 계층 제공. 상위 네트워크 라이브러리(libnetfilter_conntrack 등)의 기반 구성요소.

9. libnftnl (1.2.2-2.amzn2023.0.2)

주요 기능: nftables 네트워크 필터링 라이브러리

기술 명세:

  • nftables netlink 인터페이스
  • 규칙 생성 및 관리 API
  • 테이블, 체인, 규칙 조작
  • 네트워크 객체 표현
  • 필터링 표현식 처리

역할: iptables-nft와 함께 작동하여 nftables 기반 네트워크 패킷 필터링 구현. 컨테이너의 고급 네트워크 정책 및 규칙 관리에 사용됨.

10. pigz (2.5-1.amzn2023.0.3)

주요 기능: 병렬 gzip 압축 유틸리티

기술 명세:

  • 다중 스레드 gzip 구현
  • 병렬 압축 및 해제
  • 표준 gzip 호환 출력
  • 코어/스레드 수 기반 자동 최적화
  • 스트림 처리 지원

역할: 다중 코어 시스템에서 컨테이너 이미지 압축 및 해제 성능 최적화. 이미지 pull, push, save, load 작업 속도 향상을 통한 컨테이너 배포 효율성 증대.

구성요소 간 상호작용

Docker 환경에서 이러한 패키지들은 계층적 아키텍처를 형성하여 작동:

  1. 명령 계층: docker CLI를 통한 사용자 명령 입력
  2. 관리 계층: dockerd(Docker daemon)가 명령 해석 및 컨테이너 관리
  3. 런타임 계층: containerd가 컨테이너 실행 상태 관리
  4. 실행 계층: runc가 Linux 커널 기능을 활용하여 실제 컨테이너 생성
  5. 인프라 계층: 네트워크(iptables 관련), 리소스 관리(libcgroup), 최적화(pigz) 패키지들이 지원

이러한 계층적 구조를 통해 사용자는 단순한 docker 명령어만으로 복잡한 컨테이너 환경을 효율적으로 관리할 수 있음.