Sar*_*pta 43 docker kubernetes minikube skaffold
我正在尝试使用 minikube 构建微服务映像并将其部署到在我的开发机器上运行的单节点 Kubernetes 集群。我正在使用 Google 的云原生微服务演示应用程序 Online Boutique 来了解 Kubernetes、Istio 等技术的使用。
链接到 github 存储库:microservices-demo
在遵循安装过程并运行命令skaffold run来构建和部署我的应用程序时,我收到一些错误:
Step 10/11 : RUN apt-get -qq update && apt-get install -y --no-install-recommends curl
---> Running in 43d61232617c
W: GPG error: http://deb.debian.org/debian buster InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian buster InRelease' is not signed.
W: GPG error: http://deb.debian.org/debian buster-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian buster-updates InRelease' is not signed.
W: GPG error: http://security.debian.org/debian-security buster/updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://security.debian.org/debian-security buster/updates InRelease' is not signed.
failed to build: couldn't build "loadgenerator": unable to stream build output: The command '/bin/sh -c apt-get -qq update && apt-get install -y --no-install-recommends curl' returned a non-zero code: 100
Run Code Online (Sandbox Code Playgroud)
我在尝试构建 loadgenerator 时收到这些错误。我该如何解决这个问题?
OhH*_*ark 69
遇到这些错误的原因有几个:
现有缓存和/或磁盘空间可能存在问题。为了修复它,您需要通过执行:sudo apt-get clean和来清除 APT 缓存sudo apt-get update。
现有的 docker 镜像也是如此。执行:docker image prune -f并docker container prune -f以删除未使用的数据和可用的磁盘空间。
如果你不关心安全风险,你可以尝试运行apt-get带有--allow-unauthenticated或--allow-insecure-repositories标志的命令。根据文档:
如果包无法通过身份验证,请忽略并且不提示。这在使用本地存储库时很有用,但如果用户本身无法以其他方式确保数据真实性,则会带来巨大的安全风险。
如果这有帮助,请告诉我。
Jac*_*ell 45
我遇到了同样的问题,之前提到的修剪图像或容器的回复都没有奏效。原因是我的 Docker Build Cache 占用了大部分空间。运行以下命令修复了问题:
docker system prune
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过运行来检查它是否有效:
docker system df
Run Code Online (Sandbox Code Playgroud)
更新:
上述命令将清除整个 Docker 系统。如果只想清除构建缓存,可以使用以下命令(归功于saraf.gahl):
docker system prune
Run Code Online (Sandbox Code Playgroud)
小智 37
@Jack Kawell 说得对。
docker builder prune
Run Code Online (Sandbox Code Playgroud)
这个命令就可以解决问题。请注意命令“ docker system prune ”,因为这会删除所有图像(非常具有破坏性)。构建器修剪仅删除构建缓存,该缓存是您之前所有(缓存的)构建步骤所在的位置。
Tia*_*ões 24
我有同样的问题。看来是空间不够了。我已经删除了旧图像并且它开始工作。
$ docker images
选择您不再关心的那些(删除)。
$ docker rmi <image_id>
以下命令过滤并删除悬挂图像。
docker rmi $(docker images -q --filter "dangling=true")
cer*_*zas 14
我通常看到这个的原因是因为 docker 已经用完了磁盘空间,这令人沮丧,因为错误几乎没有表明这是问题所在。首先尝试使用prune命令https://docs.docker.com/config/pruning/清理不需要的图像和容器。
$ docker image prune
$ docker container prune
Run Code Online (Sandbox Code Playgroud)
如果您积累了大量图像并希望删除所有与现有容器无关的图像,请尝试:
$ docker image prune -a
Run Code Online (Sandbox Code Playgroud)
或者您可以仅删除旧图像:
$ docker image prune -a --filter "until=24h"
Run Code Online (Sandbox Code Playgroud)
最后,在 Docker 在专用 VM 内运行的 MacOS 上,您可能需要从 Docker 桌面应用程序(设置 -> 资源 -> 高级 -> 磁盘映像大小)增加可用于 Docker 的磁盘。
小智 12
这些都不适合我。不过这个命令确实达到了目的:
docker volume prune
Run Code Online (Sandbox Code Playgroud)
我可以回收价值 249GB 的卷。
Jon*_*Guy 11
我尝试了上面的一些答案,但没有一个对我有用。真正的触发因素是当我使用--allow-unauthenticated@Wytrzyma \xc5\x82y Wiktor \ 的回答--allow-insecure-repositories时,我收到一条通知
tar: ./conffiles: Cannot utime: Operation not permitted\ntar: ./control: Cannot utime: Operation not permitted\ntar: ./md5sums: Cannot utime: Operation not permitted\ntar: ./postinst: Cannot utime: Operation not permitted\ntar: .: Cannot utime: Operation not permitted\ntar: Exiting with failure status due to previous errors\nRun Code Online (Sandbox Code Playgroud)\n这引导我找到了这篇文章,该文章表明问题可能出在 libseccomp2 已过时的地方。
\n解决办法是:
\n# Get signing keys to verify the new packages, otherwise they will not install\nsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138\n\n# Add the Buster backport repository to apt sources.list\necho \'deb http://httpredir.debian.org/debian buster-backports main contrib non-free\' | sudo tee -a /etc/apt/sources.list.d/debian-backports.list\n\nsudo apt update ; sudo apt install libseccomp2 -t buster-backports\nRun Code Online (Sandbox Code Playgroud)\n请注意,这假设您正在使用 Raspbian 和 19.04 之后的 docker 版本
\n我认为这与 docker 官方镜像的某些 LSM 组件(在本例中为 armhf)和 exec/capabilities 权限有关。在这种简单的情况下,sid风味无法正确处理时间。这与证书检查有关,是签名无效的原因。它也发生在 ubuntu focus 中。
# docker run -it debian:buster /bin/date
Sun Nov 15 11:30:44 UTC 2020
# docker run -it debian:sid /bin/date
Thu Jan 1 00:00:00 UTC 1970
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20125 次 |
| 最近记录: |