레이블이 podman인 게시물을 표시합니다. 모든 게시물 표시
레이블이 podman인 게시물을 표시합니다. 모든 게시물 표시

2023년 7월 20일 목요일

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

발생원인

1. podman/runc의 버그로 보임

조치방안 (한꺼번에 다 할 필요는 없고 1번해보고 해결이 안되면 2번, 2번도 안되면 3번순으로 진행)

  1. podman 패키지 업데이트
    $> yum update podman -y
    ...

  2. podman 실행 옵션에서 security설정 변경
    $> podman run -d --security-opt=seccomp=unconfined --name=test
    ...

  3. 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

출처 : http://igoni.kr/books/linux/page/podman-KTi

2022년 7월 25일 월요일

podman사용하기

  1. docker없이 컨테이너 실행하기

    1. podman-docker 패키지를 통해 docker가 설치되어 있지 않아도 docker 명령어를 실행할 수 있습니다.
    2. 사실 커맨드가 매핑도이 있는것이고 실제로는 podman을 실행하게 됩니다.


      완료되었습니다!
    3. docker의 socket api가 지원되기 때문에 podman-docker 패키지를 설치하면 /var/run/docker.sock과 /var/run/podman/podman.sock의 링크를 설정하기 때문에 docker-py, docker-compose를 이용한 docker api도 그대로 사용할 수 있습니다.
    4. podman에서 지원하지 않는 docker 옵션은 네트워크, 노드, 플러그인, 이름변경, 시크릿, 서비스, 스택, docker swarm이 대상입니다.
  2. Rooless설정

    1. 호스트 컨테이너 스토리지 경로는 사용자 정보에 따라 달라집니다. (root - /var/lib/containers/storage, non root - $HOME/.local/share/containers/storage)
    2. rootless 컨테이너는 1024미만의 포트에 액세스 할 수 없습니다. (tcp/80을 사용하는 apache의 경우 서비스에서는 tcp/80을 표시하시만 서버 외부에서 실제 접속은 불가능)
    3. 1024 이하 포트를 사용하려면 커널값 변경을 통해 임시로 사용할 수는 있으나, 프로덕션 환경에서는 사용하는것은 권장되지 않습니다. (테스트 목적)
    4. 8.1부터 rootless Containers기능을 사용하면 일반사용자로 컨테이너 실행할 수 있습니다. (rootless는 기본기능)
  3. 레지스트리 구성

    1. registries.conf에 컨테이너를 내려받기 위한 레지스트리 목록이 저장되어 있습니다, 해당 파일에서 검색할 레지스트리를 설정 할 수 있습니다.
    2. test.com은 TLS 없이 pull 설정
    3. 특정 레지스트리 검색 차단
  4. 이미지 검사
    1. skopeo 명령어를 통해 이미지 정보를 확인할 수 있습니다.
    2. httpd container 정보 확인 방법

adfit

AI들끼리 대화하기

ChatGPT, perplexity, Gemini... 많은 AI 서비스가 있고 서비스별로 다양한 엔진이 있죠. 문득 AI끼리 대화를 시켜보면 어떤 대화의 흐름을 이어갈까 궁금해졌습니다. 그래서 해보았습니다. 규 칙 나(사람)은 양쪽 AI에서...