我正在尝试使用Docker Compose(在Windows上使用Docker Machine)来启动一组Docker容器。
我的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容器没有运行。如何启动容器?
答案 0 :(得分:106)
这里的问题是您没有创建容器。请注意,您必须在运行它们之前创建这些容器。您可以使用docker-compose up
来创建容器并启动它们。
您还可以先执行命令docker-compose create
以创建容器,然后执行docker-compose start
。
答案 1 :(得分:8)
您看到错误的原因是docker-compose start
和docker-compose restart
假设容器已经存在。
如果要构建和启动容器,请使用
docker-compose up
如果您只想构建容器,请使用
docker-compose up --no-start
之后,docker-compose {start,restart,stop}
应按预期工作。
曾经使用docker-compose create
命令,但不赞成使用docker-compose up --no-start
。