需求:现在碰到一个需求,需要定期轮休某个目录,将其中的.tar文件使用docker load命令加载镜像
问题1:显然.tar文件要是使用 docker save 镜像名:版本 > abc.tar 这种形式打包出来的,才能被成功load回去。那么该如何检测.tar文件是否格式正确,且镜像内容完整。这样就能够将那些非docker save出来的文件删除。
问题2:该目录是需要用户上传.tar文件的。考虑到一些镜像save出来的.tar文件很大,那么上传的时间会比较多,如何判断某个.tar文件正是正在上传的,这样就不会将它删掉了。
不知道我表达清楚没有,各位大侠有什么好方法。
高洛峰2017-04-25 09:05:12
docker save
내보낸 파일은 실제로 일반 압축 파일입니다. 이 압축 파일에는 이미지의 모든 이미지 레이어와 이미지의 기본 정보가 포함된 매니페스트 파일이 포함되어 있습니다. 매니페스트 파일에는 모든 이미지 레이어의 해시 값이 포함되어 있습니다. 이러한 기능 값을 사용하여 이미지 레이어 파일이 완전하고 올바른지 확인할 수 있습니다. 매니페스트 파일과 모든 이미지 레이어 파일의 내용을 확인하여 이미지의 내보낸 데이터가 올바른지 확인할 수 있습니다.
大家讲道理2017-04-25 09:05:12
확실하지 않습니다. 공식 문서에는 검증 문제에 대한 언급이 없습니다 (@유명 답변 참조)
예를 들어 실제 업로드 디렉토리가 작업 디렉토리와 분리되어 있는지 확인하는 방법은 많습니다(/upload에 업로드한 다음 완료 후 /publish로 이동하고 삭제하면 /publish 아래의 디렉터리만 삭제하거나, 파일 업로드 후 .md5sum 확인 파일을 가져오세요. .md5sum 확인 파일이 없으면 아직 파일이 업로드되지 않은 것입니다