无法导入ctr-enc加密的图片
Unable to import image encrypted by ctr-enc
我正在尝试使用 this 教程加密 docker 图像。
我有图像存储在 Azure 容器注册表中,我想加密它们。
由于 ctr-enc 环境不支持来自 Azure CR 的图像,因此我从 Azure CR 中提取图像,将其标记到本地注册表(sudo docker 标记“azure-cr-image-name”localhost:5000/test:0.1) 并推送它(sudo docker push localhost:5000/test:0.1) 然后从本地注册表中将其拉入 ctr-enc。
所有步骤都正常。图像成功运行,因此我将其导出到 tar 文件。
当我尝试在任何其他设备中导入 tar 文件时出现错误。
报错如下
unpacking localhost:5000/test:0.1 (sha256:7b60c337c1d319c682369508673f8da65ce027cd95917d80abec71c753f90341)...INFO[0119] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown" key="extract-395814385-sMwu sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown
我只想知道这个流程是否有效,我是否遗漏了什么或者整个流程是错误的。我对此不太了解,因此将不胜感激。
我通过以下步骤解决了错误。
尝试重新创建流程,我使用 this link 来设置我的本地存储库。
从 acr 中拉取镜像,对其进行加密并将其推送到本地注册表,然后开始将加密镜像从本地注册表拉取到其他设备
我在设备中遇到以下错误
unpacking linux/arm64/v8 sha256:cfd940f7d5d6a6817e8d4f4a811a27263fa11dc00507ebf638ff24be703e5320...
INFO[0293] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption\n: unknown" key="extract-20510027-zCdy sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption
: unknown
在 pull 命令本身中提供密钥后,图像已下载并且 运行 没有任何错误。
拉命令示例:sudo ctr-enc images pull --plain-http=true --key mykey.pem registry.local.com:5000/encrypted-image/test:0.1
要点:
1] 在要设置存储库的设备的主机文件中添加以下行,以及要在其中 运行 加密图像的设备。换成你的实际IP
Ex:- 192.168.0.1 repository.local.com
2] 在 /docker/daemon.json 文件中为您计划 运行 加密图像
的设备添加以下行
"insecure-registries":["registry.local.com:5000"]
我正在尝试使用 this 教程加密 docker 图像。 我有图像存储在 Azure 容器注册表中,我想加密它们。
由于 ctr-enc 环境不支持来自 Azure CR 的图像,因此我从 Azure CR 中提取图像,将其标记到本地注册表(sudo docker 标记“azure-cr-image-name”localhost:5000/test:0.1) 并推送它(sudo docker push localhost:5000/test:0.1) 然后从本地注册表中将其拉入 ctr-enc。
所有步骤都正常。图像成功运行,因此我将其导出到 tar 文件。 当我尝试在任何其他设备中导入 tar 文件时出现错误。 报错如下
unpacking localhost:5000/test:0.1 (sha256:7b60c337c1d319c682369508673f8da65ce027cd95917d80abec71c753f90341)...INFO[0119] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown" key="extract-395814385-sMwu sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown
我只想知道这个流程是否有效,我是否遗漏了什么或者整个流程是错误的。我对此不太了解,因此将不胜感激。
我通过以下步骤解决了错误。 尝试重新创建流程,我使用 this link 来设置我的本地存储库。 从 acr 中拉取镜像,对其进行加密并将其推送到本地注册表,然后开始将加密镜像从本地注册表拉取到其他设备
我在设备中遇到以下错误
unpacking linux/arm64/v8 sha256:cfd940f7d5d6a6817e8d4f4a811a27263fa11dc00507ebf638ff24be703e5320...
INFO[0293] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption\n: unknown" key="extract-20510027-zCdy sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption
: unknown
在 pull 命令本身中提供密钥后,图像已下载并且 运行 没有任何错误。
拉命令示例:sudo ctr-enc images pull --plain-http=true --key mykey.pem registry.local.com:5000/encrypted-image/test:0.1
要点: 1] 在要设置存储库的设备的主机文件中添加以下行,以及要在其中 运行 加密图像的设备。换成你的实际IP
Ex:- 192.168.0.1 repository.local.com
2] 在 /docker/daemon.json 文件中为您计划 运行 加密图像
的设备添加以下行 "insecure-registries":["registry.local.com:5000"]