docker compose启动提示「未找到项目容器」问题求助
问题
使用旧版docker-compose命令时,服务会尝试启动(但构建环节存在问题),为何使用新版docker compose命令却无法正常执行?
当前目录结构
ls -la ./docker/local/ total 20 drwxrwxr-x 4 jorgee jorgee 4096 abr 11 19:37 . drwxrwxr-x 3 jorgee jorgee 4096 abr 11 16:54 .. drwxrwxr-x 3 jorgee jorgee 4096 abr 11 16:59 base_wordpress drwxrwxr-x 4 jorgee jorgee 4096 abr 11 16:53 configs -rw-rw-r-- 1 jorgee jorgee 995 abr 11 19:37 docker-compose.yaml
执行的启动命令及报错
docker compose --file ./docker/local/docker-compose.yaml -p nhco-be start no container found for project "nhco-be": not found
docker-compose.yaml配置内容
version: '3.5' services: mysql: image: 'mysql:8.0' working_dir: /application volumes: - '.:/application' environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nhco - MYSQL_USER=nhco - MYSQL_PASSWORD=nhco ports: - '8082:3306' webserver: image: 'nginx:alpine' working_dir: /application volumes: - '../../wp-content:/application/wp-content' - './configs/nginx/nginx.conf:/etc/nginx/conf.d/default.conf' ports: - '8080:80' php-fpm: build: configs/php-fpm working_dir: /application environment: - DB_HOST=mysql - DB_NAME=nhco - DB_USER=nhco - DB_PASSWORD=nhco volumes: - '../../wp-content:/application/wp-content' - './configs/php-fpm/php-ini-overrides.ini:/etc/php/8.3/fpm/conf.d/99-overrides.ini'
解答
- 核心原因是命令用法错误:
docker compose start的作用是启动已经存在的容器,而非创建并启动新容器。你之前从未用nhco-be这个项目名创建过容器,因此会提示找不到容器。 - 旧版
docker-compose你应该是使用了docker-compose up命令,这个命令会自动完成构建镜像、创建容器、启动容器的完整流程,哪怕构建环节有问题,也会尝试启动可运行的服务。 - 要实现和旧版
docker-compose up一致的效果,新版命令应改为:
该命令会自动处理镜像构建、容器创建与启动流程,和旧命令行为一致。docker compose --file ./docker/local/docker-compose.yaml -p nhco-be up - 补充说明:
docker-compose是独立的旧工具,docker compose是集成到Docker CLI的新命令,两者容器管理逻辑互通,但start命令的前提都是容器已被创建(比如之前用up创建后执行了stop,此时才能用start重启)。
内容的提问来源于stack exchange,提问作者JorgeeFG
相关产品推荐
相关产品推荐

