如何检查docker容器和拉取镜像的真实性?

问题描述 投票:0回答:1

问题陈述: 我的任务是确定我刚刚从 Nexus 中提取的映像是否是真实的,或者是否由于网络问题或其他问题而损坏。

可能还有其他方法可以进行此检查,但我选择使用 Digest sh256 校验和。

linux docker shell nexus
1个回答
0
投票

经过一番努力,我得到了这个问题的解决方案:

#!/bin/sh
NEXUS_URL=##NEXUS##
DOCKER_IMAGE_NAME="abc"
DOCKER_IMAGE_VER="1.0.0-1"

NEXUS_CHECKSUM=$(curl "https://$NEXUS_URL:5443/service/rest/v1/search?docker.imageTag=$DOCKER_IMAGE_VER&docker.imageName=$DOCKER_IMAGE_NAME" | grep "sha256" | awk '{print $3}' | sed 's/"//g')

PULLED_CHECKSUM=$(podman image ls --digests --format '{{.Digest}}' $NEXUS_URL:5000/tas/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER |  cut -d ':' -f 2)

echo "$NEXUS_CHECKSUM : $PULLED_CHECKSUM"

if [[ $NEXUS_CHECKSUM==$PULLED_CHECKSUM ]];then
   echo "Image is not courrupt"
else
   echo "Image is Corrupt"
fi
© www.soinside.com 2019 - 2024. All rights reserved.