podman에서 컨테이너가 실행되지 않을때 조치방법
시작하는 말
안녕하세요, 고니 입니다.
기존에 작성했던 컨텐츠들 업데이트를 하면서 문서의 리팩토링(Refactoring)을 진행해보려고 합니다.
podman에서 컨테이너 띄울때 아래 메시지가 나오면서 정상적으로 실행되지 않는 경우가 있어요.
실행절차
- podman에서 컨테이너 띄울때 에러메시지 발생
$> podman run -d --name=test ... Error: runc: container_linux_go:370: staring container process caised: error adding seccomp filter rule for syscall bdflush: permission denied
- 컨테이너 상태를 보면 아래와 같이 state가 구동(Up)이 아니라 생성(created)만 되게 되어요
$> docker ps -a Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd3896eb439d localhost:5000 5 months ago Created 0.0.0.0:80->80/tcp test
- container runtime은 runc와 crun을 사용할 수 있는데요. 기본적으로 사용할 수 있는 runtime이 무엇인지는 docker(podman) info로 확인 할 수 있습니다.
runtime 확인 방법
- PODMAN 기반인 경우
$> podman info ... ociRuntime: name: runc package: runc-1.1.12-1.module+el8.10.0+1825+623b0c20.x86_64 path: /usr/bin/runc ...
- DOCKER기반인 경우
$> docker info ... ociRuntime: name: crun package: crun-1.8.7-1.el9.x86_64 path: /usr/bin/crun ...
- runtime의 차이점
- crun은 runc에 비해 최대 2배 빠르고, 메모리 사용량은 최대 50배 적습니다
- crun은 최소 프로세스 수 설정, rootless 컨테이너의 그룹별 파일 공유, OCI 후크의 stdout/stderr 제어 등 추가 기능을 제공합니다
조치방안
- 한꺼번에 다 할 필요는 없고 1번해보고 해결이 안되면 2번, 2번도 안되면 3번순으로 진행)
- podman 패키지 업데이트
$> yum update podman -y ...
- podman 실행 옵션에서 security설정 변경
$> podman run -d --security-opt=seccomp=unconfined --name=test ...
- runtime 종류 변경
$> podman run --runtime crun -d --name=test ...
확인방법
$> docker ps -a
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd3896eb439d localhost:5000 5 months ago Up 2 weeks ago 0.0.0.0:80->80/tcp test
Reference
- https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/9/html/building_running_and_managing_containers/selecting-a-container-runtime_building-running-and-managing-containers#selecting-a-container-runtime_building-running-and-managing-containers
- https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/proc_running-containers-with-runc-and-crun_selecting-a-container-runtime
No Comments