阿里云ECS安装docker compose

一、先清理掉错误残留

先执行:

sudo rm -f /etc/apt/sources.list.d/docker.list

sudo rm -f /etc/apt/keyrings/docker.asc

sudo apt update

⸻

二、安装基础依赖

sudo apt-get install -y ca-certificates curl gnupg lsb-release

sudo install -m 0755 -d /etc/apt/keyrings

⸻

三、重新导入 Docker 官方 GPG key

你刚才是这里失败了。先用这个命令重新下载:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |

sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

然后修正权限:

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Docker 官方 Ubuntu 安装文档要求先导入仓库签名 key,再添加仓库;Compose 插件也是通过这个仓库安装。 

⸻

四、添加 Docker 官方仓库

echo

"deb arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg https://download.docker.com/linux/ubuntu

(. /etc/os-release \&\& echo VERSION_CODENAME) stable" |

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

然后更新索引:

sudo apt-get update

如果这一步仍然报:

• Connection reset by peer

• TLS handshake timeout

• The repository is not signed

那就说明这台服务器当前访问 download.docker.com 网络不稳定,不是命令写错了。

你可以先检查:

curl -I https://download.docker.com/linux/ubuntu/gpg

curl -I https://download.docker.com/linux/ubuntu/dists/jammy/InRelease

只要这两个地址访问不通,官方仓库方式就装不上。

⸻

五、安装 Docker Engine + Compose plugin

如果 sudo apt-get update 已经成功,没有 GPG 错误,就执行:

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker 官方当前 Ubuntu 安装方式就是安装这几个包,其中包含 docker-compose-plugin。 

⸻

六、启动 Docker

sudo systemctl unmask docker

sudo systemctl enable docker

sudo systemctl start docker

sudo systemctl status docker

你日志里显示现在 docker.service 是 masked,所以需要先 unmask。

⸻

七、验证是否安装成功

docker --version

docker compose version

docker ps

Compose 插件安装成功后,验证命令就是:

docker compose version

这是官方文档给出的检查方式。 

⸻

如果官方仓库还是连不上:直接用手动安装方案

因为你这台机器明显对 download.docker.com 有网络问题,所以我再给你一个 备用方案。Docker 官方也提供了 手动安装 Compose plugin 的方式,但前提是机器上已经有 Docker Engine 和 Docker CLI。手动方式不会自动更新。 

方案 A:先把 Docker Engine 装回来,再手动装 compose

如果你暂时只想先恢复 Docker,可先用 Ubuntu 自带源装回去:

sudo apt update

sudo apt install -y docker.io

sudo systemctl unmask docker

sudo systemctl enable docker

sudo systemctl start docker

docker --version

然后手动安装 compose 插件到系统目录:

sudo mkdir -p /usr/local/lib/docker/cli-plugins

sudo curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64

-o /usr/local/lib/docker/cli-plugins/docker-compose

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

docker compose version

Docker 官方 Compose Linux 安装页明确写了:

• 可以把插件放到 /usr/local/lib/docker/cli-plugins 供所有用户使用;

• 手动安装不自动更新;

• 这是 Docker 官方支持的手动方法。 

⸻

最适合你当前机器的实际修复路径

结合你现在的日志,我建议你直接走这个顺序,成功率最高:

路径 1:优先尝试官方仓库安装

按上面的"一到七"执行。

路径 2:如果 download.docker.com 还是连不上

直接执行下面这套:

1. 安装 Ubuntu 自带 Docker

sudo apt update

sudo apt install -y docker.io

2. 启动 Docker

sudo systemctl unmask docker

sudo systemctl enable docker

sudo systemctl start docker

3. 验证 Docker

docker --version

4. 手动安装 Compose 插件

sudo mkdir -p /usr/local/lib/docker/cli-plugins

sudo curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64

-o /usr/local/lib/docker/cli-plugins/docker-compose

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

5. 验证 Compose

docker compose version

⸻

你刚才出错点总结

你的日志里有几个关键问题:

1)包找不到

E: Unable to locate package docker-compose-plugin

这是因为你当时还没接入 Docker 官方仓库。官方文档里,这个包就是通过 Docker 仓库安装的。 

2)GPG key 下载失败

curl: (35) OpenSSL SSL_connect: Connection reset by peer

导致 key 文件没写进去,所以后面自然出现:

NO_PUBKEY 7EA0A9C3F273FCD8

The repository is not signed

3)把 Docker 本体卸载掉了

Removing docker.io ...

-bash: /usr/bin/docker: No such file or directory

所以现在必须先把 Docker 重新装回来。

4)安装命令敲错了

你把:

sudo apt-get install -y docker-ce docker-ce-cli ...

写成了:

sudo systemctl status dockerer-ce docker-ce-cli ...

这不是安装。

⸻

安装完成后,你就可以这样启动项目

进入你的项目目录:

cd ~/vr-tour

docker compose up -d

查看状态:

docker compose ps

docker compose logs -f

⸻

你现在最需要的是把命令一次执行对。我建议你直接复制下面这份"最短修复版"。

最短修复版

清理残留

sudo rm -f /etc/apt/sources.list.d/docker.list

sudo rm -f /etc/apt/keyrings/docker.asc

sudo rm -f /etc/apt/keyrings/docker.gpg

sudo apt update

先恢复 docker

sudo apt install -y docker.io

sudo systemctl unmask docker

sudo systemctl enable docker

sudo systemctl start docker

手动安装 compose 插件

sudo mkdir -p /usr/local/lib/docker/cli-plugins

sudo curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64

-o /usr/local/lib/docker/cli-plugins/docker-compose

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

验证

docker --version

docker compose version

相关推荐
java_logo10 小时前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
方便面不加香菜12 小时前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
无所畏俱的老尹14 小时前
Agent 落地为什么需要影子对照:同输入只读双跑、写动作变提案、差异报警,比直接切全量更安全
人工智能·机器学习·云计算·aigc·devops
无人生还别怕18 小时前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
逐流人19 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
YYYing.1 天前
【K8s系列 (一) 】Docker与容器(上篇)
docker·云原生·容器·kubernetes
csdn_aspnet1 天前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
SaaS_Product1 天前
OneDrive中的文件批量迁移到Zoho网盘
经验分享·云计算·saas·onedrive
余槐i2 天前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
csdn_aspnet2 天前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器