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

Docker Compose指定自定义网络却创建新网络的问题求助

问题原因与解决方法

原因

Docker Compose默认会以当前命令执行目录的名称作为项目前缀,自动为配置中定义的网络、卷等资源添加前缀。你看到的ark-sql_trade-net,就是目录名ark-sql和你配置里的trade-net组合生成的新网络。

解决方法

方法1:配置使用外部已有网络

修改你的docker-compose.yml,在networks部分添加external: true,告诉Compose直接使用已存在的trade-net,不要创建新网络:

version: '3.8'

services:
  python:
    container_name: python
    build: .
    tty: true
    networks:
      - trade-net
    depends_on:
      - timescale
  
  timescale:
    image: timescale/timescaledb-ha:pg14-latest
    container_name: timescaledb
    ports:
      - "5432:5432"
    volumes:
      - timescale-volume:/home/postgres/pgdata/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=mypass
    networks:
      - trade-net
    
networks:
  trade-net:
    external: true  # 指定为外部已存在的网络
    driver: bridge

volumes:
  timescale-volume:

方法2:启动时指定项目名(自定义前缀)

如果不想修改配置,可以在启动容器时用-p参数指定项目名,替换默认的目录前缀。比如想让网络前缀为myproject,执行:

docker-compose -p myproject up -d

这种方法会生成myproject_trade-net格式的网络,适合需要自定义项目前缀的场景,但无法直接复用已有的trade-net。

后续清理(可选)

如果之前自动生成的ark-sql_trade-net网络无使用需求,可以删除:

docker network rm ark-sql_trade-net

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:00:52