리눅스/UBUNTU 리눅스

우분투리눅스 : podmam 포드맨 설치

큰세상2000 2025. 1. 12. 19:35
반응형

 

■ Docker vs Podman

더보기
    1. 아키텍처 차이
    Docker
        - 데몬(dockerd) 기반 아키텍처
        - root 권한으로 실행되는 중앙 집중식 데몬 필요
        - 모든 컨테이너 작업이 데몬을 통해 처리

    Podman
        - 데몬리스(Daemonless) 아키텍처
        - 데몬 없이 직접 컨테이너 실행
        - fork-exec 모델 사용
        - 각 컨테이너가 독립적으로 실행

2. 보안
    Docker
        - root 권한 필요
        - 데몬이 root로 실행됨
        - 보안 취약점 발생 가능성

    Podman
        - rootless 모드 지원
        - 일반 사용자 권한으로 실행 가능
        - 더 높은 보안성

3. 리소스 사용
    Docker
        - 데몬 실행으로 추가 메모리 사용
        - 시스템 부팅 시 자동 시작
    Podman
        - 데몬이 없어 메모리 사용량 적음
        - 필요할 때만 실행

 

 


■   ( root )  패키지 설치 : 설치는 root 권한으로
apt    install    podman    crun    fuse-overlayfs    uidmap 

더보기

 

# fuse-overlayfs
- 일반 사용자(non-root)가 컨테이너의 파일시스템 레이어를 관리
- 루트 권한 없이도 컨테이너의 파일시스템을 조작

 

# uidmap
- newuidmap과 newgidmap 명령어 제공
- 컨테이너 내부의 UID/GID를 호스트 시스템의 UID/GID로 매핑
- rootless 컨테이너 실행에 필수적인 구성요소
# crun 
- crun은 컨테이너 런타임
- OCI(Open Container Initiative) 표준을 준수하는 가볍고 빠른 컨테이너 런타임 구현체
- cgroups v2 완벽 지원
- systemd 통합 지원
- rootless 컨테이너 지원
- SELinux 지원

# 상태 확인
crun --version

# 컨테이너 실행 예시 (직접 사용시)
crun run mycontainer

# Podman에서 crun 사용 설정
podman --runtime /usr/bin/crun run ...

# Podman에서 crun 확인
podman info | grep runtime

# 시스템 설정 확인
ls -l /usr/bin/crun

# 런타임 상태 확인
crun list

 

 


■  ( root ) subuid와 subgid 설정 : user 설정할 경우에만
echo    "user2000:100000:65536"    >>    /etc/subuid
echo    "user2000:100000:65536"    >>    /etc/subgid

더보기
# /etc/subuid 예시 ( user간에 구간이 겹치지 않게 )
# 뒷자리는 간격
alice:100000:65536    # alice는 100000-165535 사용
carol:200000:65536    # carol은 200000-265535 사용
david:300000:65536    # david는 300000-365535 사용

 

 

 
■  ( root ) UID 매핑 확인  : user 설정할 경우에만
cat    /etc/subuid

user2000:100000:65536
user2000:100000:65536

 

 


■  ( root ) GID 매핑 확인  : user 설정할 경우에만
cat    /etc/subgid

user2000:100000:65536
user2000:100000:65536


 
 
■  ( root ) 설치 버젼 확인
podman    --version

podman version 3.4.4
더보기

 

알파인리눅스에서는 5.2.5 이지만 우분투에서는 3.4.4

Ubuntu의 기본 저장소에 있는 Podman 버전이 더 낮은 이유는 Ubuntu의 패키지 안정성 정책 때문
 

# 최신버젼 설치하기

  # podman 제거
  sudo apt remove podman

  # Kubic 저장소 추가
  echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

  # GPG 키 추가
  curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -

  # 패키지 목록 업데이트
  apt update

  # 최신 podman  설치
  apt install -y podman

  

 


■  ( root ) cgroups 설정 확인

우분투는 알파인 리눅스와 달리 기본 v2 지원

podman    info    |    grep    -i    cgroup

  cgroupControllers:
  cgroupManager: systemd
  cgroupVersion: v2

 

 


■  ( root )  Podman 재시작
systemctl    restart    podman
 

 

반응형