Docker 构建错误:无法添加主机

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

我在运行

docker build
时遇到意外错误,我说 unexpected 因为我已经有一段时间没有更改我的
Dockerfile
了,两周前最后一次它工作得很好,但现在我出现以下错误:

在网桥上创建端点optimistic_spence失败:添加主机失败(veth9fc3a03)<=>沙箱(veth15abfd6)对接口:不支持操作

如果有任何帮助:

  • Docker 版本为 18.06.0-ce,内部版本 0ffa8257ec
  • 我没有看到任何带有
    docker ps
  • 的容器
  • Systemd 返回 docker 进程的活动状态 (
    sudo systemctl status docker
    )
  • 构建命令是:
    docker build -t user/repo:tag .

Dockerfile
看起来像:

FROM alpine:3.4

LABEL version="current version"
LABEL description="A nice description."
LABEL maintainer="[email protected]"

RUN apk update && apk add \
    gcc \
    g++ \
    make \
    git \
    && git clone https://gitlab.com/user/repo.git \
    && cd repo \
    && make \
    && cp program /bin \
    && rm -r /repo \
    && apk del g++ make git

WORKDIR /tmp

ENTRYPOINT ["program"]

有人明白发生了什么事吗?谢谢!

编辑

--network
选项结合使用时,错误会稍有变化,但并不能解决问题。例如,
--network=host
给出以下内容:

获取http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz

错误:http://dl-cdn.alpinelinux.org/alpine/v3.4/main:临时错误(稍后重试)

警告:忽略 APKINDEX.167438ca.tar.gz:没有这样的文件或目录

获取http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz

错误:http://dl-cdn.alpinelinux.org/alpine/v3.4/community:临时错误(稍后重试)

警告:忽略 APKINDEX.a2e6dac0.tar.gz:没有这样的文件或目录 2 个错误; 11 种不同的套餐可供选择

命令 '/bin/sh -c apk update && apk add gcc g++ make git && git clone https://gitlab.com/user/repo.git && cd repo && make && cp 程序 /bin && rm - r /repo && apk del g++ make git' 返回非零代码:2

docker alpine-linux
4个回答
15
投票

有同样的错误,

systemctl restart docker
也没有修剪图像和系统,我最终重新启动了我的计算机,这似乎已经解决了问题。


6
投票

看起来任何

docker network bridge
都发生了问题,并且它不允许您创建相同的内容,因为它是“僵尸”。

尝试以下步骤:

  1. docker network prune
    ,如果不起作用,请尝试:
  2. docker system prune
    <-- Careful, this also will purge your named volumes contents, i.e, volumes that are not assigned to a container. So, if you have volumes assigned to a container, you should have to re-build/create containers.
  3. /etc/init.d/docker restart

告诉我发生了什么,让我们看看,实际上,如果它不能解决您的问题,我需要更多有关您的问题的信息。


2
投票

只是为了添加可能的原因。对于我(可能还有@testix)来说,这是因为我进行了系统升级(archlinux),所以我的内核模块得到了升级,但我仍在运行旧内核,因此无法加载模块。 您可以尝试对随机模块进行 modprobe :

modprobe vcan
modprobe: FATAL: Module vcan not found in directory /lib/modules/6.2.7-arch1-1

这意味着您必须重新启动(或者使用

--network
,如果您可以逃脱的话)。


1
投票

我遇到过两次这个问题,解决方法都是一样的。我发帖是为了对某人有任何帮助:

  • 首先,确保DNS服务器已正确设置(例如将DNS设置为1.1.1.1)。
  • 其次,重启docker守护进程。

对于那些在 Linux 中使用 systemd 的人来说,systemctl restart 不适合我。我必须停止并启动 docker 才能使其工作。之后,我可以再次登录并拉取图像。

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