You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VirtualBox中Ubuntu 20环境下docker-compose安装后版本查询报错的原因排查与解决方法

Docker-Compose 安装故障排查:错误原因与验证方法

为什么会出现这个错误?

你碰到的这个解压错误,根源基本是下载的docker-compose二进制文件损坏了。从错误日志里的incorrect data check(数据校验错误)和Failed to write all bytes(无法写入全部字节)就能看出来——要么是curl下载时网络波动导致文件没下全,要么是GitHub的安装包在传输过程中丢包了。

另外补充个小细节:你选的1.28.5是2021年的老版本,而Ubuntu 20.04默认自带的是Python 3.8,错误里提到的cpython-37m是Python 3.7的编译文件,版本不兼容也可能加剧这类解压失败的问题。

怎么修复并验证安装?

第一步:先删掉损坏的文件

先把已经下载的坏文件清理掉:

sudo rm /usr/local/bin/docker-compose

第二步:重新下载(推荐加重试机制或换兼容版本)

如果坚持用1.28.5,给curl加--retry参数,让它在下载失败时自动重试,保证文件完整性:

sudo curl -L --retry 3 "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

更推荐的是安装适配Ubuntu 20.04的新版本(比如v2.x系列,现在docker-compose已经整合到Docker CLI里,也可以直接用docker compose命令),比如安装v2.20.2:

sudo curl -L --retry 3 "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

第三步:重新添加执行权限

sudo chmod +x /usr/local/bin/docker-compose

如何确认docker-compose已经正确安装?

可以通过这几个方法验证:

  • 版本校验:执行docker-compose --version(v2.x版本也可以用docker compose version),如果能正常返回类似docker-compose version 1.28.5, build c4eb3a1f的版本信息,说明安装成功。
  • 文件完整性校验:对比官方提供的SHA256哈希值。比如1.28.5的Linux x86_64版本校验值是1a40c75d34f50bf44e4971e1f49b860f58a54a4c58a57c68b0b5267a72f3ad6b,执行以下命令:
sha256sum /usr/local/bin/docker-compose

把输出的哈希值和官方发布页的对应值对比,完全一致就说明文件没问题。

  • 功能测试:找一个简单的docker-compose.yml示例(比如启动一个Nginx容器),执行docker-compose up -d,如果能正常拉起容器,并且docker-compose ps能看到容器状态正常,就说明功能正常。

内容的提问来源于stack exchange,提问作者John

火山引擎 最新活动