리눅스/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
반응형