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

Docker Compose部署报错:no such service: database问题排查

Docker Compose部署报错“no such service: database”排查与解决

你的docker-compose.yml配置如下:

version: '3.9'

services:
  db:
    image: mongo
    restart: always
    volumes: 
      - 'dbdata:/data/db'
    container_name: database
  server:
    build: .
    restart: always
    ports:
      - '2000:2000'
    depends_on:
      - db    
    container_name: api
    links:
      - database
  frontend:
    build: ./client
    restart: always    
    ports:
      - '3000:3000'
    depends_on:
      - server    
    container_name: client
    links:
      - api                
volumes: 
  dbdata:       

本地执行docker compose up -d正常,但在Oracle Linux 8.6上执行时创建网络后报错“no such service: database”,核心原因是**links字段的使用错误**,和系统/版本的兼容性也有一定关联:

问题根源

Docker Compose的links字段要求引用的是服务名称(即services下的键名,比如db、server),而非容器的container_name。你的配置中:

  • server服务的links写了database(这是db服务的容器名),而非服务名db
  • frontend服务的links写了api(这是server服务的容器名),而非服务名server

本地能正常运行,大概率是因为本地Docker/Compose版本对这种错误的兼容性更宽松;而Oracle Linux上的版本规则更严格,直接触发了错误。

修复方案

方案1:修正links字段为服务名

修改后的配置如下:

version: '3.9'

services:
  db:
    image: mongo
    restart: always
    volumes: 
      - 'dbdata:/data/db'
    container_name: database
  server:
    build: .
    restart: always
    ports:
      - '2000:2000'
    depends_on:
      - db    
    container_name: api
    links:
      - db  # 改为服务名db
  frontend:
    build: ./client
    restart: always    
    ports:
      - '3000:3000'
    depends_on:
      - server    
    container_name: client
    links:
      - server  # 改为服务名server                
volumes: 
  dbdata:       

方案2:直接删除links字段(推荐)

现代Docker Compose中,同一项目的服务会自动加入默认网络,直接通过服务名即可互相访问(比如server服务内访问db服务,直接用db作为主机名),links字段已经属于过时用法,完全可以删除,不影响服务间通信。

额外建议

检查Oracle Linux上的Docker和Docker Compose版本,确保为稳定版:

# 查看Docker版本
docker --version
# 查看Docker Compose版本
docker compose version

如果版本过旧,建议升级到官方推荐的稳定版本,避免更多兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:20:27