본문 바로가기
운영체제 (LNX,WIN)

Docker 컨테이너 엔진 대체재 Podman LXC 기술 활용

by 날으는물고기 2023. 12. 10.

Docker 컨테이너 엔진 대체재 Podman LXC 기술 활용

Podman은 Linux 환경에서 컨테이너를 관리하는 도구로, Docker와 비슷한 기능을 제공하지만 몇 가지 중요한 차이점이 있습니다. 주요 차이점은 다음과 같습니다.

  1. 데몬 없음(Daemonless): 가장 큰 차이점 중 하나는 Podman이 데몬 없이 동작한다는 것입니다. Docker는 백그라운드에서 돌아가는 데몬 프로세스가 필요하지만, Podman은 데몬 없이 직접 실행됩니다. 이는 사용자에게 더 간단한 환경을 제공하고 보안 측면에서 이점을 가질 수 있습니다.
  2. 루트 권한 없는 컨테이너 실행(Rootless): Podman은 루트 권한이 없어도 컨테이너를 실행할 수 있는데, Docker는 기본적으로 루트 권한이 필요합니다. 이는 보안 상의 이점을 제공하며, 특히 멀티유저 환경에서 더 안전한 사용을 가능케 합니다.
  3. systemd 통합: Podman은 systemd와 통합되어 있어, 서비스 관리 및 로깅과 같은 작업을 훨씬 쉽게 할 수 있습니다.
  4. OCI(Open Container Initiative) 호환성: Podman은 OCI 표준을 준수하며, Docker와 호환되는 이미지를 사용할 수 있습니다. 따라서 Docker 이미지를 그대로 사용할 수 있습니다.

이제 Podman의 기본 사용법에 대해 간략하게 설명하겠습니다.

Podman 사용법

  1. 컨테이너 실행
    podman run -it ubuntu /bin/bash
  2. 컨테이너 목록 확인
    podman ps -a
  3. 이미지 다운로드
    podman pull ubuntu
  4. 컨테이너 정지 및 삭제
    podman stop <container_id>
    podman rm <container_id>
  5. 이미지 목록 확인
    podman images
  6. 컨테이너 로그 확인
    podman logs <container_id>
  7. 컨테이너에 명령 실행
    podman exec -it <container_id> /bin/bash
  8. 컨테이너 생성과 실행
    podman pod create --name mypod
    podman run -d --pod mypod nginx

이러한 명령어들은 기본적으로 Docker와 유사하지만, 명령어가 docker 대신에 podman으로 시작된다는 것을 주의해야 합니다.

 

Podman은 다양한 상황에서 사용될 수 있으며, 특히 Docker와의 차이점을 고려하여 특정 상황에서 더 적합할 수 있습니다. 여기서는 Podman이 특히 유용한 몇 가지 사용 사례를 살펴보겠습니다.

  1. 루트 권한이 없는 환경
    • Podman은 루트 권한 없이 컨테이너를 실행할 수 있어, 보안상 이점을 가지며 특히 멀티유저 환경에서 유용합니다.
  2. 데몬 없는 환경
    • Podman은 데몬 없이 직접 실행되기 때문에 시스템 자원을 덜 소비하고 구성이 간단합니다. 이는 컨테이너를 가벼운 환경에서 실행하고자 할 때 유용합니다.
  3. systemd 통합 및 서비스 관리
    • Podman은 systemd와 통합되어 있어 서비스의 관리와 로깅이 간단합니다. 서비스의 자동 시작 및 재시작과 같은 기능을 사용할 수 있습니다.
  4. OCI 호환성
    • Podman은 OCI 표준을 준수하므로 Docker 이미지를 그대로 사용할 수 있습니다. 따라서 이미지를 Docker와 Podman 간에 쉽게 이동할 수 있습니다.
  5. 루프백 네트워크를 사용하는 경우
    • Podman은 컨테이너 간 통신에 루프백 네트워크를 사용하므로, 호스트와 격리된 네트워크 환경에서 테스트 및 개발할 때 편리합니다.
  6. CI/CD 파이프라인
    • Podman은 데몬 없이 직접 실행되기 때문에 CI/CD 파이프라인에서 간단하게 통합되고 사용될 수 있습니다.
  7. 다중 아키텍처 지원
    • Podman은 x86, ARM, PPC64 등 다양한 아키텍처를 지원하므로, 여러 환경에서 동일한 컨테이너 이미지를 사용할 수 있습니다.

이러한 특징들은 Podman을 특히 보안, 간소성, 다양한 환경 지원 등의 측면에서 Docker와 비교하여 선택하는 이유가 될 수 있습니다.

728x90

댓글