dev-os

[Linux][CentOS] Getting Started with Podman

검은바람 2022. 10. 4. 11:18
반응형

포드맨 시작하기

Podman은 libpod 라이브러리의 일부로 제공되는 유틸리티입니다. 컨테이너를 만들고 유지 관리하는 데 사용할 수 있습니다. 다음 자습서에서는 Podman을 설정하고 몇 가지 기본 명령을 수행하는 방법을 알려줍니다.

CentOS 8 설치 시 podman을 기본 라이브러리로 포함하고 있습니다.

Podman에 익숙해지기

코드 샘플은 root가 아닌 사용자로 실행하기 위한 것이며 sudo권한을 필요로 합니다..

도움을 받다

도움을 받고 Podman이 어떻게 작동하는지 알아보려면 다음 도움말 을 사용할 수 있습니다 .

$ podman --help
$ podman <subcommand> --help

자세한 내용은 맨페이지를 참조하십시오.

$ man podman
$ man podman-<subcommand>

이미지 검색, 가져오기 및 나열

Podman은 몇 가지 간단한 키워드로 원격 레지스트리에서 이미지를 검색할 수 있습니다.

$ podman search <search_term>

필터를 사용하여 검색을 향상시킬 수도 있습니다.

$ podman search httpd --filter=is-official

이미지 다운로드(Pulling)도 쉽습니다.

$ podman pull docker.io/library/httpd

일부 이미지를 가져온 후 컴퓨터에 있는 모든 이미지를 나열할 수 있습니다.

$ podman images

참고 : Podman은 다른 레지스트리에서 검색합니다. 따라서 전체 이미지 이름( httpd 대신 docker.io/library/httpd )을 사용하여 올바른 이미지를 사용하고 있는지 확인하는 것이 좋습니다.

컨테이너 실행

이 샘플 컨테이너는 인덱스 페이지만 제공하는 매우 기본적인 httpd 서버를 실행합니다.

$ podman run -dt -p 8080:80/tcp docker.io/library/httpd

참고 : 컨테이너가 분리 모드에서 실행되고 있기 때문에 명령에 표시된 대로 Podman -d은 podman run명령을 실행한 후 컨테이너 ID를 인쇄합니다. 또한 -t대화형 셸에서 임의의 명령을 실행하기 위해 pseudo-tty를 추가합니다.

참고 : HTTP 서버에 액세스할 수 있도록 포트 포워딩을 사용합니다. 성공적인 실행을 위해서는 최소한 slirp4netns v0.3.0이 필요합니다.

실행 중인 컨테이너 나열

 podman ps명령은 생성 및 실행 중인 컨테이너를 나열하는 데 사용됩니다.

$ podman ps

참고 : podman ps -a 은 모든 컨테이너(생성, 종료, 실행 등)를 표시합니다.

httpd 컨테이너 테스트

보시다시피 컨테이너에는 할당된 IP 주소가 없습니다. 컨테이너는 로컬 컴퓨터에 게시된 포트를 통해 연결할 수 있습니다.

$ curl http://localhost:8080

다른 머신에서 컨테이너를 실행하는 호스트의 IP 주소를 사용해야 합니다.

$ curl http://<IP_Address>:8080

참고 : curl을 사용하는 대신 브라우저에서 http://localhost:8080 으로 확인할 수도 있습니다 .

실행 중인 컨테이너 검사

실행 중인 컨테이너에 대한 메타데이터 및 세부 정보를 "검사"할 수 있습니다. podman inspect환경 변수, 네트워크 설정 또는 할당된 리소스와 같은 유용한 정보를 많이 제공합니다.

컨테이너가 루트리스 모드로 실행 중이므로 컨테이너에 IP 주소가 할당되지 않습니다.

$ podman inspect -l | grep IPAddress
            "IPAddress": "",

참고 : 최신 컨테이너-l 에 대한 편의 인수입니다 . 또는 long 인수 대신 컨테이너의 ID 또는 이름을 사용할 수도 있습니다 .-l--latest

참고 : Mac 및 Windows(WSL2 제외) 시스템을 포함한 원격 Podman 클라이언트를 실행 중인 경우 -l옵션을 사용할 수 없습니다.

컨테이너의 로그 보기

Podman을 사용하여 컨테이너의 로그도 볼 수 있습니다.

$ podman logs -l

127.0.0.1 - - [04/May/2020:08:33:48 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:50 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:51 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45
127.0.0.1 - - [04/May/2020:08:33:52 +0000] "GET / HTTP/1.1" 200 45

컨테이너의 pid 보기

를 사용하여 컨테이너에서 httpd pid를 관찰할 수 있습니다 podman top.

$ podman top -l

USER     PID   PPID   %CPU    ELAPSED            TTY     TIME   COMMAND
root     1     0      0.000   22m13.33281018s    pts/0   0s     httpd -DFOREGROUND
daemon   3     1      0.000   22m13.333132179s   pts/0   0s     httpd -DFOREGROUND
daemon   4     1      0.000   22m13.333276305s   pts/0   0s     httpd -DFOREGROUND
daemon   5     1      0.000   22m13.333818476s   pts/0   0s     httpd -DFOREGROUND

컨테이너 중지

컨테이너를 중지할 수 있습니다.

$ podman stop -l

podman ps 명령 을 사용하여 하나 이상의 컨테이너 상태를 확인할 수 있습니다 . 이 경우 -a인수를 사용하여 모든 컨테이너를 나열해야 합니다.

$ podman ps -a

컨테이너 제거

마지막으로 컨테이너를 제거할 수 있습니다.

$ podman rm -l

 실행하여 컨테이너 삭제를 확인할 수 있습니다 podman ps -a.

체크포인트, 마이그레이션 및 컨테이너 복원

컨테이너를 검사점으로 지정하면 컨테이너에 있는 모든 프로세스의 상태를 디스크에 쓰는 동안 컨테이너가 중지됩니다. 이를 통해 컨테이너는 나중에 마이그레이션 및 복원되어 체크포인트와 정확히 동일한 시점에 실행될 수 있습니다. 자세한 내용은 체크포인트 지침 을 참조하세요 .

 

반응형