Docker Compose 提示错误:未提供配置文件:未找到

85
我在Windows上安装了Docker Desktop,并启用了WSL集成版本2。在执行某些docker compose命令时遇到了问题,出现了以下错误。
docker compose logs
no configuration file provided: not found

然而,在执行以下操作时并未发现任何问题。
docker compose up

图片已经构建并成功启动。
有人能帮忙吗?

docker info的输出结果

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.7.1)
  compose: Docker Compose (Docker Inc., v2.2.1)
  scan: Docker Scan (Docker Inc., 0.9.0)

Server:
 Containers: 3
  Running: 3
  Paused: 0
  Stopped: 0
 Images: 4
 Server Version: 20.10.11
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc version: v1.0.2-0-g52b36a2
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.10.60.1-microsoft-standard-WSL2
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 24.95GiB
 Name: docker-desktop
 ID: FUMA:ZOXR:BA4L:YSOZ:4NQT:HHIZ:ASAD:EJGA:NJRG:SO4S:GXN3:JG5H
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support

已更新

我犯了个错误,我应该在正确的目录下执行docker compose命令,该目录是docker-compose.yml文件所在的位置。

问题已解决。


7
尝试像这样指定compose文件路径: docker-compose -f <docker-compose.yml> logs - David
感谢 @David。它奏效并解决了问题。 - Gan Yi Zhong
9个回答

61

在docker-compose.yml文件所在的位置执行docker-compose命令即可解决问题。

或者按照以下方式指定docker-compose.yml文件

docker-compose -f <docker-compose.yml> logs 

如建议所示


我复制了一个没有yml扩展名的旧示例(我猜以前不需要)。添加它就可以了。 - Rob Sedgwick
这个对我有用。我犯了一个新手错误,认为“docker compose down”会关闭从我所在的目录中运行的任何内容 - 如果您的compose文件具有默认名称“docker-compose.yml”,它确实会这样做,但如果您的compose文件命名为其他名称,则不会。 - trapper_hag

6
任何人得到的
no configuration file provided: not found

我在Mac上执行时收到了同样的消息。
docker-compose up

问题出在docker-compose.yml文件上。我将其从Visual Studio Code保存为文本文件,尽管操作系统确定它是一个正确的YAML文件。请看截图:左侧的文件是错误的,但看起来相同。

enter image description here

确保在保存时选择YAML格式。

enter image description here


1
  1. Docker Compose 版本 v2.17.2
  2. Docker 版本 24.0.5,构建 ced0996
  3. Ubuntu 22.04.3 LTS

在我的情况下,问题是从某个时间点开始命令变成了 docker compose,而不是 docker-compose。因此有效的命令是 docker compose up -d

https://docs.docker.com/compose/migrate/


0
我遇到了同样的问题(在尝试查看组合文件中所有服务的日志时),这里的最佳答案对我有所帮助,只是稍作修改。
  • 我有一个自定义的docker-compose文件(例如,docker-compose.custom.yml)
  • 我必须使用"docker compose"而不是"docker-compose"
所以下面的命令对我有效:
docker compose -f docker-compose.custom.yml logs --follow

0

在Windows PC上遇到了同样的问题。问题出在操作系统认为文件扩展名是一个已知的文件类型。

解决方案

进入文件夹选项并禁用“隐藏已知文件类型的扩展名”。

现在您应该能够看到实际的文件扩展名,它可能看起来像正常的 .txt 文件(而不是 .yml)。相应地重命名文件,再次运行命令,就可以解决问题了!

enter image description here


0

我在Windows 10上遇到了相似的错误,通过将我的.yaml文件以类型“所有文件”和扩展名.yaml重新保存,我纠正了这个问题。在此之前,Windows保存它为文本文件,导致出现错误。


0

我在Windows的PowerShell上遇到了同样的问题。我正在使用docker-compose up命令,该命令位于新创建的目录中,该目录位于C:\WINDOWS\system32\

在我的情况下,我通过将其移动到C:\Users\来解决了这个问题。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

-1
在你选择的空目录下,创建以下的docker-compose.yaml文件。

-3
我也遇到了这个错误,原来是文件名拼写错误(哎呀),所以如果其他人也看到了这篇文章,请务必仔细检查文件名的拼写!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接