docker-compose.yml 文件:
version: "3"
services:
webserver:
image: nginx
ports:
- "80:80"
volumes:
- .:/usr/share/nginx/html
我创建一个服务:docker-compose -p my up --no-start
我查看容器列表:docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99dabcf2b2cf nginx "nginx -g 'daemon of…" 4 seconds ago Created my_webserver_1_5f7310de9b9a
我尝试运行:docker-compose start
Starting webserver ... done
ERROR: No containers to start
但是,如果您不指定名称(-p my) ,它会起作用
我翻阅了 .bash_history 中的命令,突然我输入了错误的内容,但没有 - 相同的命令。昨天成功了,今天没有更新。
版本:docker-compose version 1.23.1, build b02f1306
让我们看一下文档:
COMPOSE_PROJECT_NAME 设置项目名称。在启动时,该值会与服务名称一起添加到容器中。例如,如果您的项目名称是 myapp,并且它包含两个服务 db 和 web,那么 Compose 会分别启动名为 myapp_db_1 和 myapp_web_1 的容器。设置这是可选的。如果您不设置此项,COMPOSE_PROJECT_NAME 默认为项目目录的基本名称。另请参见 -p 命令行选项。
我们得出结论:因为 创建了一个带有前缀“my”(标志 -p)的容器,那么显然您需要以相同的方式运行它(或者使用默认值创建和运行不带 -p 的容器)。