# ubuntu22.04升级docker&docker-compose

明白 ✅  
你现在的环境里：

- **Docker** 和 **docker-compose** 都是用 **解压 .deb 包 + 手动拷贝二进制** 的方式安装的（`docker_debs_2021_Rulr6.zip`）。
- 这种方式不会跟随系统自动升级，所以需要你手动卸载旧版本 → 安装 Docker 官方最新版本。

---

## 🔧 升级步骤（Ubuntu 22.04）

### 1. 卸载旧版本

先停掉并卸载老的 docker 组件：

```bash
sudo systemctl stop docker
sudo apt-get remove -y docker docker-engine docker.io containerd runc
sudo rm -f /usr/bin/docker-compose
sudo rm -rf /var/lib/docker

```

> ⚠️ `/var/lib/docker` 删除会清空所有容器和镜像，如果你要保留数据，可以先备份或跳过这一步。

---

### 2. 安装最新 Docker CE

添加官方仓库并安装：

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

# 添加 Docker GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加 Docker apt 源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装最新 Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

```

---

### 3. 启用并验证 Docker

```bash
sudo systemctl enable docker
sudo systemctl start docker
docker -v

```

应该显示最新版，例如：

```
Docker version 27.3.1, build xxxx

```

---

### 4. 安装新版 Docker Compose (v2)

新版 compose 已经是 Docker 官方插件，不需要单独装 `docker-compose` 1.x 了，命令变成：

```bash
docker compose version

```

例如：

```
Docker Compose version v2.29.7

```

如果你还想保留 `docker-compose` 命令（兼容老项目），可以做个软链接：

```bash
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose

```

---

## 总结

- 你的 **旧版 1.29.2 docker-compose** 太老 → 建议升级到 **Docker Compose v2**（插件版）。
- 以后直接用：
    
    ```bash
    docker compose up -d
    
    ```
- 不需要单独管理 compose 二进制。

---

要不要我帮你写一个 **一键升级脚本**（包含卸载旧版 + 安装最新版 Docker + 启用 compose v2 + 兼容 docker-compose 命令）？