存储库未在 docker build 中签名

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

我有以下 Dockerfile,它使用从 dockerhub 中提取的最新 Ubuntu 映像:

FROM ubuntu:latest  
RUN apt-get update  && apt-get install -y  g++ llvm lcov 

当我启动 docker build 命令时,出现以下错误:

Err:2 http://archive.ubuntu.com/ubuntu bionic InRelease 
At least one invalid signature was encountered.

Err:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
  At least one invalid signature was encountered.

Err:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
  At least one invalid signature was encountered.

Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
  At least one invalid signature was encountered.

Reading package lists...

W: GPG error: http://archive.ubuntu.com/ubuntu bionic InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic InRelease' is not signed.

W: GPG error: http://security.ubuntu.com/ubuntu bionic-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://security.ubuntu.com/ubuntu bionic-security InRelease' is not signed.

W: GPG error: http://archive.ubuntu.com/ubuntu bionic-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-updates InRelease' is not signed.

W: GPG error: http://archive.ubuntu.com/ubuntu bionic-backports InRelease: At least one invalid signature was encountered.
E: The repository 'http://archive.ubuntu.com/ubuntu bionic-backports InRelease' is not signed.

我在这里阅读https://superuser.com/questions/1331936/how-can-i-get-past-a-repository-is-not-signed-message-when-attempting-to-upgr你可以使用 --allow-unauthenitcated 或 --allow-insecure-repositories 传递此错误,但在我看来这两种解决方法可能会损害容器的安全性。

编辑

试图拉 ubuntu:18.04, ubuntu:19:04, ubuntu:19.10 不同发行版名称的相同错误

docker ubuntu apt
15个回答
320
投票

显然我的根分区已满(也许我尝试了太多次通过apt下载包),然后运行

sudo apt clean
解决了这个问题


此外,以下命令应该有助于清理空间:

docker system df # which can show disk usage and size of 'Build Cache'
docker image prune # add -f or --force to not prompt for confirmation
docker container prune # add -f or --force to not prompt for confirmation

121
投票

自 Docker API v1.25+(发布时间:2019 年 11 月 18 日)

运行以下命令为我解决了问题:

docker system prune --force

--force
标志代表非交互式修剪。

此外,您可能想尝试 prun volume 命令:

docker volume prune --force

55
投票

固定
docker image prune -f

看起来 docker 对主机系统上的最大 apt 缓存大小有限制


35
投票

如果您使用的是 Docker Desktop,请注意您在设置中指定的最大磁盘映像大小。如果它在构建过程中变满(source),它可能会导致问题。


31
投票

对于 Raspbian,使用以下方法在主机系统上手动升级

libseccomp

curl http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1_armhf.deb --output libseccomp2_2.5.1-1_armhf.deb
sudo dpkg -i libseccomp2_2.5.1-1_armhf.deb

这解决了我的问题。

原帖在这里.


14
投票

正如@Danila 和@Andriy 所指出的,这个问题很容易在运行时得到解决:

docker image prune -f
docker container prune -f

但是发布这个答案,因为只运行其中一个对我不起作用(在 MacOS X 上)——但是同时运行两个。


7
投票

这对我有帮助:

 docker volume prune

4
投票

我不得不用

--security-opt seccomp:unconfined
运行容器。


3
投票

我的两台机器中的一台遇到了这个问题。做一个

ls -ld /tmp
我得到了

drwxrwxrwt 3 root root 4096 May 15 20:46 /tmp

工作人员和

drwxr-xr-t 1 root root 4096 May 26 05:44 /tmp

失败者。在我做了

chmod 1777 /tmp
之后,它成功了!!

编辑:

所以,我更深入地研究了这个问题,并意识到存在根本性的错误。我把我的问题放在另一个问题中,后来找到了自己解决这个问题的答案:https://stackoverflow.com/a/62088961/7387935

这里的关键点是,在正常工作的机器上,我有 aufs 作为存储驱动程序,而在有故障的机器上,它是 overlay2。我更改后,所有权限都是正确的。


2
投票

我后来又试了一次,成功了。

来自https://github.com/docker-library/php/issues/898#issuecomment-539234070:

这通常意味着镜子有问题(可能部分出 日期;即不完全与其他镜像同步)并且经常 清理自己。


1
投票

谢谢,我确认它对我有用。我运行了这些命令,这解决了问题。再次拉取图像。

docker volume prune
docker system df
docker builder prune
docker image prune
docker system df

0
投票

我能够通过停止所有正在运行的容器(在我的例子中是 2 个)来解决这个问题。


0
投票

现有的答案都是通过

docker container prune
docker image prune
docker volume prune
删除现有的Docker项目来为Docker创造更多空间。或者,也可以增加 Docker 为它自己设置的磁盘限制(前提是你有足够的磁盘空间)。

在 Docker Desktop 中转到 Settings > Resources 并增加“Virtual disk limit”。

这对我很有帮助,因为我使用了几个大型 docker 镜像并且不想每次都为修剪而烦恼。


-1
投票

我在构建命令中添加了

--network=host

docker build --network=host -t REPOSITORY:TAG  ./

-1
投票

这对我有用

docker system prune -af --volumes
还有这些其他的

docker image prune 
docker container prune
docker builder prune
docker volume prune

运行

 docker system df
并查看您的其中一个卷是否需要可用空间

© www.soinside.com 2019 - 2024. All rights reserved.