需求:现在碰到一个需求,需要定期轮休某个目录,将其中的.tar文件使用docker load命令加载镜像
问题1:显然.tar文件要是使用 docker save 镜像名:版本 > abc.tar 这种形式打包出来的,才能被成功load回去。那么该如何检测.tar文件是否格式正确,且镜像内容完整。这样就能够将那些非docker save出来的文件删除。
问题2:该目录是需要用户上传.tar文件的。考虑到一些镜像save出来的.tar文件很大,那么上传的时间会比较多,如何判断某个.tar文件正是正在上传的,这样就不会将它删掉了。
不知道我表达清楚没有,各位大侠有什么好方法。
docker save
Le fichier exporté est en fait un fichier compressé ordinaire. Ce fichier compressé contient toutes les couches d'image de l'image, ainsi que le fichier Manifest contenant les informations de base de l'image. Le fichier manifeste contient les valeurs de hachage de toutes les couches d'image. Vous pouvez utiliser ces valeurs de caractéristiques pour vérifier si le fichier de couche d'image est complet et correct. Vous pouvez déterminer si les données exportées de l'image sont correctes en vérifiant le contenu du fichier manifeste et de tous les fichiers de calques d'image.Pas sûr, le document officiel ne mentionne pas la question de la vérification(Se référer à la réponse de @有明)Il existe de nombreuses façons de garantir que, par exemple, le répertoire de téléchargement réel est séparé du répertoire dans lequel vous travaillez (télécharger vers /upload, puis passer à /publish une fois terminé, si vous le supprimez, vous supprimez uniquement le répertoire sous /publish), ou Après avoir téléchargé le fichier, apportez un fichier de vérification .md5sum. Si le fichier de vérification .md5sum n'existe pas, cela signifie que le fichier n'a pas encore été téléchargé