You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04下Docker Compose部署Django时BuildKit启动报错

解决Docker Compose启动BuildKit失败的http: invalid Host header错误

以下是针对Ubuntu 22.04.3环境的可行排查与修复步骤:

1. 显式配置Docker Daemon的Host地址

BuildKit启动失败常因Docker daemon的Host配置模糊导致,修改/etc/docker/daemon.json文件:

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

保存后重启Docker服务:

sudo systemctl restart docker

2. 升级Docker Compose至最新稳定版

旧版本Docker Compose与BuildKit存在兼容性bug,执行以下命令升级:

sudo rm -f /usr/local/bin/docker-compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证升级结果:

docker-compose --version

3. 彻底禁用BuildKit(避免残留配置干扰)

即使之前尝试禁用,可能存在环境变量未清除的情况,执行启动命令前先重置相关变量:

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0
docker-compose -f ./docker-compose.yml up

也可以直接在docker-compose.yml中全局禁用BuildKit:

version: '3.8'

x-buildkit:
  enabled: false

services:
  # 你的Django、MySQL、Django Q服务配置...

4. 排查网络配置异常

  • 确保docker-compose.yml中使用标准bridge网络,避免自定义网络的Host解析问题:
version: '3.8'

networks:
  default:
    driver: bridge

services:
  # 你的服务配置...
  • 检查Dockerfile中是否包含涉及远程资源的指令(如ADD https://xxx),确认URL的Host格式合法,无特殊字符。

5. 验证系统Hosts与DNS配置

检查本地/etc/hosts文件是否存在异常映射:

cat /etc/hosts

同时验证DNS解析正常:

ping docker.io

如果以上步骤仍未解决问题,可提供docker info的完整输出、Dockerfile及docker-compose.yml的具体内容,以便进一步定位问题。

内容的提问来源于stack exchange,提问作者Jingda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:43:11