22. Ubuntu Server에서 Podman 시작하기: 완벽 가이드

소개

Podman 시작하기는 Docker의 안전하고 루트리스한 대안으로 설계된 최신의 가벼운 컨테이너 엔진을 소개합니다. Docker와 달리 Podman은 중앙 데몬이 필요하지 않아 컨테이너를 관리하는 개발자와 시스템 관리자에게 향상된 보안과 유연성을 제공합니다. 루트리스 아키텍처는 권한 상승을 최소화하는 것이 중요한 환경에서 특히 매력적입니다.

이 가이드에서는 Ubuntu Server 22.04에 Podman을 설치하고 사용하는 데 필요한 기본 사항을 다룹니다. 또한 단축 이름(예: nginx)을 사용하여 컨테이너 이미지를 가져올 때 발생하는 일반적인 문제를 다루고 Podman을 원활하게 시작할 수 있도록 명확한 해결책을 제공합니다.

Podman 시작하기

이전 글:

01. Ubuntu Server 소개 – SysOSX: AI & Cloud

02. 첫 Ubuntu Server 설정 방법: 초보자 가이드 – SysOSX: AI & Cloud

03.Ubuntu Server용 Linux 명령줄 마스터하기 – SysOSX: AI & Cloud

04. Ubuntu Server에서 사용자 및 권한 관리: 종합 가이드 – SysOSX: AI & Cloud

05. Ubuntu Server 네트워킹 기초: 종합 가이드 – SysOSX: AI & Cloud

06. Ubuntu Server에 소프트웨어 설치 및 관리: 완전 가이드 – SysOSX: AI & Cloud

07.Ubuntu Server 패치 및 업데이트: 종합 가이드 – SysOSX: AI & Cloud

08. Ubuntu Server 보안: 강화 및 보호를 위한 실제 단계 – SysOSX: AI & Cloud

09. Ubuntu Server 감사 및 로깅

10. Ubuntu Server용 시스템 모니터링 도구: 종합 가이드 – SysOSX: AI & Cloud

11. Ubuntu Server 중앙 집중식 로깅: 필독 가이드 – SysOSX: AI & Cloud

12. Ubuntu Server 감사 및 규정 준수: 모범 사례 – SysOSX: AI & Cloud

13.호스팅 및 웹 애플리케이션용 Ubuntu Server 설정: 최종 가이드 – SysOSX: AI & Cloud

14. 단일 Ubuntu Server에서 여러 웹사이트 호스팅: 유용한 팁 – SysOSX: AI & Cloud

15. Ubuntu Server에서 스토리지 및 디스크 관리: 간단 가이드 – SysOSX: AI & Cloud

16. Ubuntu Server에서 파일 공유 서비스 설정: 완전 가이드 – SysOSX: AI & Cloud

17. Ubuntu에서 보안 데이터베이스 서버 설정: MySQL 대 MariaDB – SysOSX: AI & Cloud

18. Ubuntu Server에서 LVM 구성 및 사용 방법: 종합 가이드 – SysOSX: AI & Cloud

19. KVM을 이용한 가상화 소개: Ubuntu Server 초보자 가이드 – SysOSX: AI & Cloud

20. Ubuntu Server에 Docker 설치 방법: 컨테이너화 단계별 가이드 – SysOSX: AI & Cloud

21. LXD 시작하기: 컨테이너 쉽게 설치 + 치트 시트 – SysOSX: AI & Cloud



Podman이란 무엇이며 왜 사용해야 할까요?

Podman은 보안과 유연성에 중점을 두고 컨테이너를 빌드, 실행, 관리하도록 설계된 컨테이너 엔진입니다. Podman이 인기를 얻고 있는 이유는 다음과 같습니다:

  • 데몬리스 아키텍처: Podman은 백그라운드 서비스에 의존하지 않으므로(Docker의 데몬 기반 모델과 달리) 공격 표면이 줄어들고 보안이 향상됩니다.
  • 루트리스 컨테이너: 루트가 아닌 사용자로 컨테이너를 실행하여 보안을 더욱 강화합니다.
  • Docker 호환 명령: Podman CLI는 Docker와 호환되도록 설계되어 다음과 같은 명령podman pull 또는 podman run을(를) 원활하게 사용할 수 있습니다.
  • systemd 통합: 컨테이너를 시스템 서비스로 쉽게 관리합니다.

1단계: Ubuntu Server 22.04에 Podman 설치

1.1 시스템 업데이트

Podman을 설치하기 전에 호환성 문제를 방지하기 위해 시스템이 업데이트되어 있는지 확인하세요:

sudo apt update && sudo apt upgrade -y  

1.2 Podman 설치

Podman은 Ubuntu 기본 리포지토리에 포함되어 있으므로 다음 패키지 관리자를 사용하여 직접 설치할 수 있습니다: apt.

sudo apt install podman -y  

1.3 설치 확인

설치가 완료되면 설치된 Podman 버전을 확인하여 사용할 준비가 되었는지 확인하세요:

podman --version  

예제 출력:

podman version 3.4.4


2단계: 첫 Podman 컨테이너 실행

2.1 컨테이너 이미지 가져오기

Podman은 애플리케이션을 실행하기 위해 컨테이너 이미지를 사용합니다. 먼저 가벼운 Alpine Linux 이미지를 가져오세요:

podman pull alpine  

2.2 컨테이너 실행

Alpine 이미지를 사용하여 컨테이너를 실행하세요:

podman run --rm -it alpine sh  

이 명령은 Alpine 컨테이너 안에서 대화형 셸을 시작합니다. 다음과 같은 기본 명령을 테스트할 수 있습니다:

echo "Hello from Podman!"  

2.3 컨테이너 나가기

컨테이너에서 나가려면 다음을 입력하세요:

exit  


3단계: Podman 단축 이름 확인 이해

단축 이름 문제

단축 이름(예: nginx)을 사용하여 컨테이너 이미지를 가져올 때 Podman은 이미지를 검색할 레지스트리를 알아야 합니다. 제대로 구성되지 않으면 다음과 같은 오류가 발생할 수 있습니다:

Error: short-name "nginx" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"  

이 오류가 발생하는 이유는?

Podman에는 이미지를 검색할 컨테이너 레지스트리를 정의하는 구성 파일(registries.conf)이 필요합니다. 이 파일이 없거나 잘못 구성된 경우 Podman은 다음과 같은 단축 이름을 해석할 수 없습니다: nginx.


4단계: 단축 이름 확인 오류 수정

4.1 registries.conf 파일 찾기 또는 만들기

파일registries.conf은(는) 일반적으로 다음 위치에 있습니다: /etc/containers/registries.conf. 파일이 있는지 확인하세요:

ls /etc/containers/registries.conf  

존재하지 않으면 만드세요:

sudo nano /etc/containers/registries.conf  

4.2 기본 레지스트리 구성 추가

파일에 다음 구성을 추가하세요:

[registries.search]  
registries = ['docker.io', 'quay.io']  

  • docker.io: 가장 일반적으로 사용되는 컨테이너 레지스트리인 Docker Hub를 가리킵니다.
  • quay.io: 또 다른 인기 있는 컨테이너 레지스트리입니다.

파일을 저장하고 종료하세요( Ctrl+O를 누른 뒤 Ctrl+X를 누르세요. nano를 사용하는 경우).

4.3 풀 명령 다시 시도

레지스트리 구성이 완료되면 다음 이미지를 다시 가져와 보세요: nginx.

podman pull nginx  

Podman은 이제 단축 이름 nginx 을(를) docker.io/library/nginx로 해석하고 이미지를 성공적으로 가져올 수 있습니다.


5단계: 루트가 아닌 사용자로 컨테이너 실행

Podman의 뛰어난 기능 중 하나는 루트 권한 없이 컨테이너를 실행할 수 있다는 것입니다. 설정 방법은 다음과 같습니다:

5.1 루트가 아닌 사용자로 전환

일반 사용자(예: uadmin)로 로그인하세요:

su - uadmin  

루트가 아닌 사용자도 Podman이 동작하는지 확인하세요:

podman info  

5.2 루트가 아닌 사용자의 권한 문제 수정

루트가 아닌 사용자로 Podman을 실행할 때 permission denied 오류가 발생하면 사용자의 홈 디렉터리 소유권이 잘못되었기 때문일 가능성이 높습니다.

홈 디렉터리의 소유권을 확인하세요:

ls -ld /home/uadmin  

디렉터리의 소유자가 root인 경우 수정하세요:

sudo chown -R uadmin:uadmin /home/uadmin  

필요한 .local 디렉터리를 수동으로 만드세요:

mkdir -p /home/uadmin/.local/share/containers  
sudo chown -R uadmin:uadmin /home/uadmin/.local  

Podman을 다시 테스트하세요:

podman info  

이제 Podman이 루트가 아닌 사용자로 성공적으로 동작합니다.


6단계: 초보자를 위한 유용한 Podman 명령

시작하는 데 도움이 되는 필수 Podman 명령은 다음과 같습니다:

  • 실행 중인 컨테이너 나열:
podman ps
  • 모든 컨테이너 나열(중지된 컨테이너 포함):
podman ps -a
  • 실행 중인 컨테이너 중지:
podman stop <container-id>
  • 컨테이너 제거:
podman rm <container-id>
  • 이미지 제거:
podman rmi <image-name>

참조 문서:
Podman 시작하기 | Podman


    결론

    Podman은 Ubuntu Server 22.04에 적합한 안전하고 가벼우며 유연한 컨테이너 엔진입니다. 이 가이드에서는 다음 내용을 다뤘습니다:

    • Podman 설치.
    • 첫 컨테이너 실행.
    • 단축 이름 확인 오류 수정.
    • 루트가 아닌 사용자로 컨테이너 실행.

    이 단계를 따르면 Podman을 탐색하고 컨테이너를 효과적으로 관리할 수 있는 탄탄한 기반을 갖추게 됩니다. 루트리스 기능과 Docker 호환 CLI를 갖춘 Podman은 최신 컨테이너화 워크플로에 탁월한 도구입니다.

    기대해 주세요:
    다음 글에서는 다음 주제를 다룰 예정입니다: 클라우드 플랫폼에 Ubuntu Server 배포 . GCP, AWS, Azure 등이 대상입니다.

    댓글 남기기