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

Docker环境下Django执行makemigrations报主机名解析错误的解决办法

解决Docker环境下Django makemigrations无法解析db主机的问题

出现could not translate host name "db" to address: Unknown host错误,核心原因是你在本地主机环境直接执行了makemigrations命令,而本地DNS无法识别Docker Compose创建的内部网络中的db服务名。解决步骤如下:

  1. 确保Docker Compose服务处于运行状态
    先启动所有服务(后台运行):

    docker-compose up -d
    

    可以用docker-compose ps检查db和web服务是否正常启动。

  2. 进入web容器内部执行Django管理命令
    所有Django相关的操作(包括makemigrations、migrate)都需要在Docker容器的环境中执行,因为容器和db服务处于同一个Docker内部网络,能正常解析db主机名:

    docker-compose exec web python manage.py makemigrations
    

    执行完迁移后,别忘了运行migrate:

    docker-compose exec web python manage.py migrate
    
  3. 额外检查项

    • 确认docker-compose.yml中db服务的名称确实是db,和settings.py里DB_HOST的默认值一致,当前配置是正确的。
    • 如果db服务启动失败,查看日志排查问题:
      docker-compose logs db
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:26:08