docker compose start“;错误:没有要启动的容器";

docker compose start“;错误:没有要启动的容器";,docker,docker-compose,Docker,Docker Compose,我正在尝试使用Docker Compose(在Windows上使用Docker机器)启动一组Docker容器 My docker-compose.yml: version: '2' services: postgres: build: ./postgres environment: - POSTGRES_PASSWORD=mysecretpassword frontend: build: ./frontend ports: - "4

我正在尝试使用Docker Compose(在Windows上使用Docker机器)启动一组Docker容器

My docker-compose.yml:

version: '2'
services:
  postgres:
    build: ./postgres
    environment:
      - POSTGRES_PASSWORD=mysecretpassword
  frontend:
    build: ./frontend
    ports:
      - "4567:4567"
    depends_on:
      - postgres
  backend:
    build: ./backend
    ports:
       - "5000:5000"
    depends_on:
       - postgres

docker compose build
成功运行。当我运行
docker compose start
时,我得到以下输出:

Starting postgres ... done
Starting frontend ... done
Starting backend ... done
ERROR: No containers to start

我确认docker容器没有运行。如何开始创建容器?

这里的问题是您尚未实际创建容器。您必须在运行这些容器之前创建它们。您可以使用
docker compose up
来创建容器,然后启动它们


或者您可以运行
docker compose create
来创建容器,然后运行
docker compose start
来启动它们。

看到错误的原因是
docker compose start
docker compose restart
假设容器已经存在

如果要构建和启动容器,请使用

docker-compose up
docker-compose up --no-start
如果您只想构建容器,请使用

docker-compose up
docker-compose up --no-start
之后,
docker compose{start,restart,stop}
应能按预期工作


以前有一个
docker compose create
命令,但现在它被弃用,取而代之的是
docker compose up--no start

docker compose build做什么?
docker compose build
从docker-compose.yml文件创建图像。注意
docker compose create
是弃用的。将
up
命令与
一起使用--no start