Docker-compose 错误 [内部] 启动 buildkit,http:无效的主机标头

Hug*_*ugo 33 docker docker-compose

我正在使用 docker compose 在 Ubuntu 23.04 VM 上创建 postgresql 数据库和节点服务器。过去几周我每次跑步时都运行良好docker-compose up --build -d。但现在我有以下错误:

运行 docker-compose 时出错

我尝试降级我的 docker 版本,但同样的错误仍然存​​在。

以下是 docker 版本详细信息:

码头工人版本

有人知道发生了什么吗?

小智 75

我最近遇到了同样的错误。我运行了以下命令

sudo docker compose up --build -d
Run Code Online (Sandbox Code Playgroud)

我得到以下结果

[+] Building 17.1s (1/1) FINISHED                                                                                                                                                                          
 => ERROR [internal] booting buildkit                                                                                                                                                                17.1s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                                                    2.4s
 => => creating container buildx_buildkit_default                                                                                                                                                    14.7s
------                                                                                                                                                                                                     
 > [internal] booting buildkit:
#0 17.14 time="2023-10-31T12:33:22Z" level=warning msg="using host network as the defaultime="2023-10-31T12:33:22Z" level=warning msg="using host network as the default"
#0 17.14 time="2023-10-31T12:33:22Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 17.14 dtime="2023-10-31T12:33:22Z" level=info msg="found 1 workers, default=\"jbv801nt0swxi6eh6h1y6qgnh\""
#0 17.14 `time="2023-10-31T12:33:22Z" level=warning msg="currently, only the default worker can be used."
#0 17.14 time="2023-10-31T12:33:22Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 17.14 time="2023-10-31T12:33:22Z" level=warning msg="currently, only the default worker can be used."
#0 17.14 time="2023-10-31T12:33:22Z" level=warning msg="currently, only the default worker can be used."
#0 17.14 
------
http: invalid Host header
Run Code Online (Sandbox Code Playgroud)

经过一番排查后,这似乎是 Docker 最新稳定版本(2023-10-30 20.10.24)的问题。

我通过安装最新的 Edge 版本(2023 年 10 月 7 日的 24.0.5)解决了该问题。

如果您已将 Docker 安装为快照,则可以执行以下操作

sudo snap refresh docker --channel=latest/edge
Run Code Online (Sandbox Code Playgroud)


Mat*_*nič 15

您可以通过像这样运行它来禁用构建工具包:

DOCKER_BUILDKIT=0 docker-compose up --build -d
Run Code Online (Sandbox Code Playgroud)

但这是一个临时解决方案。也许这是 docker 中的一个错误,它将被修复(就像 coccodrillus 博士的答案所暗示的那样)


小智 11

这似乎是特定版本的 docker 中的一个错误。

升级 docker 可能会解决您的问题:

sudo snap refresh docker --channel=latest/edge


小智 9

我必须告诉你,在费了九牛二虎之力下载了decker版本后,卸载所有内容并重新安装......

就我而言,它是通过运行 docker compose 而不使用任何脚本来解决的。之前我是这样跑步的:

sudo docker-compose up

现在当我运行时它可以工作:

sudo docker compose up


小智 8

我使用的是 Ubuntu 22.04,这个问题通过以下方法解决:

sudo snap refresh docker --channel=latest/edge
Run Code Online (Sandbox Code Playgroud)