Podman 로드/저장을 통해 오프라인으로 여러 이미지를 설치하는 방법

Podman 로드/저장을 통해 오프라인으로 여러 이미지를 설치하는 방법

이미지 기반 애플리케이션을 사용하고 있습니다 docker.io/library/mariadb:10.7. 이미지를 추출하여 tarball에 저장할 수 있습니다.

podman pull \
  docker.io/photoprism/photoprism:latest \
  docker.io/library/mariadb:10.7

podman save \
  -o images.tar \
  docker.io/photoprism/photoprism:latest \
  docker.io/library/mariadb:10.7

다음을 통해 다른 시스템에 오프라인으로 설치합니다 load.

docker load -i images.tar

위 명령은 성공적으로 실행되었으며 다음을 통해 이미지를 볼 수 있습니다 podman images.

REPOSITORY                       TAG         IMAGE ID      CREATED     SIZE
docker.io/photoprism/photoprism  latest      3bd51d37096b  4 days ago  1.33 GB
docker.io/library/mariadb        10.7        3bd51d37096b  4 days ago  1.33 GB

docker-compose.ymlvia를 통해 시작한다고 해서 docker-compose up -d즉시 명백한 오류가 발생하지는 않습니다. 하지만 journalctl -fmariadb 컨테이너를 시작하고 다시 시작하려고 하면 끝없는 오류 루프가 표시됩니다.

container init (image=docker.io/library/mariadb:10.7...
container start(image=docker.io/library/mariadb:10.7...
container died (image=docker.io/library/mariadb:10.7,...
container restart(image=docker.io/library/mariadb:10.7,...
container init(image=docker.io/library/mariadb:10.7,...
#... and so on

docker-compose pull이제 이것이 중요합니다. /를 통해 직접 온라인으로 이미지를 추출합니다 podman pull. 그렇지 않으면 위의 단계를 유지합니다. 동일한 시스템 내에서만 작동합니다. 잘 작동합니다!

podman savepodman load그래서 다른 컴퓨터(동일 아키텍처, Fedora)에서는 문제가 될 것 같습니다 .

읽다이 문제나는 노력했다

podman unshare podman load -i images.tar

성공하지 못했습니다.

마지막 참고 사항: Podman은 중요한 경우 사용자 공간에서 실행됩니다.

export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock
systemctl --user enable --now podman.socket

이 문제를 추가로 디버깅하려면 어떻게 해야 합니까? 가능한 원인(사용자 공간 권한 등)과 적절한 해결 방법은 무엇입니까?

답변1

-m추가 조사 후: tarball에 여러 이미지를 저장할 때 이 플래그를 추가해야 합니다.

podman save -m -o images.tar \
  docker.io/photoprism/photoprism:latest \
  docker.io/library/mariadb:10.7

-m, --multi-image-archive
추가 인수를 레이블 대신 이미지로 해석하고 다중 이미지 아카이브를 생성합니다(docker-archive만 해당)

추가 정보:https://github.com/containers/podman/issues/2669

관련 정보