Docker Compose配置报错:Unsupported config option for services: 'db' 求助
解决Docker Compose报错:Unsupported config option for services: 'db'
这个报错的根源很明确——你的Docker Compose版本(1.17.1)过于老旧,再加上你的docker-compose.yml缺少版本声明,导致旧版本的Compose无法正确解析你的配置结构。
为什么会出现这个错误?
早期的Docker Compose(比如1.17.x版本)如果没有在配置文件顶部指定version字段,会默认使用v1格式来解析配置。而v1格式里根本没有services这个顶层配置项,它是直接在根级别定义服务的。所以当你的配置里用services包裹db和wordpress时,旧版本的Compose就会把db当成services下的非法配置项,抛出那个错误。
快速解决方法
修改你的docker-compose.yml,在顶部添加兼容你当前Docker和Compose版本的格式声明,比如version: '3'(这个版本在你的Docker 18.09.5和Compose 1.17.1下是完全支持的):
version: '3' services: db: image: postgres environment: - POSTGRES_PASSWORD=mydbsecretpassword wordpress: image: wordpress ports: - "8085:80"
修改完成后,再重新运行你的docker-compose命令,应该就能正常启动服务了。
更彻底的解决方案(推荐)
你的Docker Compose 1.17.1是2018年的版本,实在太老了,不仅缺少很多新特性,还会有不少兼容性问题。建议你升级到较新的稳定版本:
- 先卸载旧版本(如果是通过包管理器安装的,用对应命令卸载,比如
sudo apt remove docker-compose) - 下载对应你系统架构的最新稳定版docker-compose二进制文件,放到
/usr/local/bin目录下 - 给二进制文件添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose - 验证版本:
docker-compose --version
升级后,即使你忘记加version字段,新版本的Compose也能自动识别正确的配置格式,减少这类问题的发生。
内容的提问来源于stack exchange,提问作者Sivabalan
相关产品推荐
相关产品推荐

