ly@gpu-worker-44:~/dockercompose/redis$ docker-compose up
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
1. 确认 Docker Compose 的版本
首先,你可以确认一下 Docker Compose 的版本,查看是否使用的是支持 version: '3'
或者其他较新版本的 Docker Compose。
docker-compose --version
# 如果是 Docker Compose V2,应该使用 `docker compose` 命令
docker compose --version
如果你使用的是较新的 Docker Compose 版本(V2),你可以直接省略 version
字段。否则,如果是旧版本的 Docker Compose(V1),你需要使用受支持的 version
字段,如 version: '3.8'
或 version: '2'
。
2. 修改 docker-compose.yml
文件
根据错误信息,你需要确保 docker-compose.yml
文件中使用的是一个受支持的版本。以下是两种修复方法:
方案一:为 docker-compose.yml
文件指定一个支持的版本
编辑你的 docker-compose.yml
文件,确保指定一个支持的版本,比如 3.8
或 2.4
:
version: '3.8' # 或者 version: '2.4'
services:
redis:
image: redis
ports:
- "6379:6379"
方案二:省略 version
字段(适用于 Docker Compose V2)
如果你使用的是 Docker Compose V2(docker compose
命令),你可以直接省略 version
字段,Docker Compose 会自动适配:
services:
redis:
image: redis
ports:
- "6379:6379"
3. 重新启动容器
修改完 docker-compose.yml
后,重新运行以下命令:
docker-compose up
或者如果你使用的是 Docker Compose V2,使用:
docker compose up
4. 确保 Docker Compose 是最新版本
如果问题仍然存在,可以考虑更新 Docker Compose 到最新版本,以便支持更多的功能和文件版本。你可以按照以下步骤更新:
- 对于 Docker Compose V1:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- 对于 Docker Compose V2:
如果你还没有安装 Docker Compose V2,或者希望切换到它,可以按照以下命令进行安装:
sudo apt-get update
sudo apt-get install docker-compose-plugin