14.8. Podman을 사용하여 컨테이너 자동 업데이트

podman auto-update 명령을 사용하면 자동 업데이트 정책에 따라 컨테이너를 자동으로 업데이트할 수 있습니다. podman auto-update 명령은 컨테이너 이미지가 레지스트리에서 업데이트될 때 서비스를 업데이트합니다. 자동 업데이트를 사용하려면 --label "io.containers.autoupdate=image" 라벨을 사용하여 컨테이너를 생성하고 podman generate systemd --new 명령으로 생성된 systemd 단위로 실행해야 합니다.

Podman은 "io.containers.autoupdate" 레이블이 "image" 로 설정된 실행 중인 컨테이너를 검색하고 컨테이너 레지스트리와 통신합니다. 이미지가 변경되면 Podman은 해당 systemd 장치를 다시 시작하여 이전 컨테이너를 중지하고 새 이미지를 사용하여 새 컨테이너를 생성합니다. 결과적으로 컨테이너, 해당 환경 및 모든 종속 항목이 다시 시작됩니다.

참고

Podman v4.6부터 일반 systemd 장치 파일과 유사한 형식으로 컨테이너를 실행하는 방법을 설명하고 systemd 에서 실행 중인 컨테이너의 복잡성을 숨길 수 있습니다.

사전 요구 사항

  • container-tools meta-package가 설치되어 있습니다.

절차

  1. registry.access.redhat.com/ubi9/ubi-init 이미지를 기반으로 myubi 컨테이너를 시작합니다.

    # podman run --label "io.containers.autoupdate=image" \
    --name myubi -dt registry.access.redhat.com/ubi9/ubi-init top
    bc219740a210455fa27deacc96d50a9e20516492f1417507c13ce1533dbdcd9d
  2. 선택 사항: 실행 중이거나 종료된 컨테이너를 나열합니다.

    # podman ps -a
    CONTAINER ID  IMAGE                                            COMMAND  CREATED         STATUS             PORTS   NAMES
    76465a5e2933  registry.access.redhat.com/9/ubi-init:latest  top      24 seconds ago  Up 23 seconds ago          myubi
  3. myubi 컨테이너의 systemd 장치 파일을 생성합니다.

    # podman generate systemd --new --files --name myubi /root/container-myubi.service
  4. 장치 파일을 루트 사용자로 설치하기 위해 /usr/lib/systemd/system 에 복사합니다.

    # cp -Z ~/container-myubi.service /usr/lib/systemd/system
  5. systemd 관리자 설정을 다시 로드합니다.

    # systemctl daemon-reload
  6. 컨테이너 상태를 시작하고 확인합니다.

    # systemctl start container-myubi.service
    # systemctl status container-myubi.service
  7. 컨테이너 자동 업데이트:

    # podman auto-update