Docker 安装(Ubuntu 22.04 / jammy)步骤总结 + 常见错误处理

1. Docker 到底是什么

  • 你电脑上正常跑程序:需要装依赖、配置环境、版本还要对得上(很容易踩坑)。
  • Docker :把"程序 + 运行它需要的一切环境"打包成一个可运行的东西。
    • 镜像(image):打包好的"模板/安装包"(只读)。
    • 容器(container):镜像运行起来后的"实例/进程"(会运行、会产生数据)。
    • Dockerfile:描述"怎么做出镜像"的配方。
    • docker-compose.yml:一键启动多个服务(如 web + 数据库 + 缓存)。

你学习别人项目时,最常见就两种:

  1. 给了 Dockerfile:你需要 docker builddocker run
  2. 给了 docker-compose.yml:你需要 docker compose up

2. Docker安装步骤如下

步骤 0:更新索引

复制代码
sudo apt update

步骤 1:确保启用了 Universe(很多 Docker 相关包在这里)

复制代码
sudo apt install -y software-properties-common
sudo add-apt-repository -y universe
sudo apt update

步骤 2:安装 Docker 引擎(Ubuntu 仓库版)

复制代码
sudo apt install -y docker.io

步骤 3:启动 Docker

仅启动本次:

复制代码
sudo systemctl start docker

检查状态:

复制代码
sudo systemctl status docker --no-pager

如果你希望开机自启(可选):

复制代码
sudo systemctl enable docker

或同时"立刻启动 + 开机自启":

复制代码
sudo systemctl enable --now docker

步骤 4:验证安装

复制代码
docker --version
sudo docker run --rm hello-world

步骤 5(可选):免 sudo

复制代码
sudo usermod -aG docker $USER

3. 遇到的错误与处理方式

错误 1:E: 无法定位软件包 docker-compose-plugin

原因(常见):

  • Ubuntu 22.04 的源里不一定有 docker-compose-plugin(或你的源组件不全)
  • universe 没开导致一些包不可见

处理:

  1. 先启用 universe(见上面步骤 1)

  2. 如果仍没有 plugin,就改装老版 compose:

    sudo apt install -y docker-compose
    docker-compose --version

说明:docker compose(plugin)和 docker-compose(旧命令)多数项目都能用。

错误 2:Failed to enable unit: Unit file docker.service does not exist.

原因:

  • Docker 根本没装成功(因为上一步包找不到/安装失败),所以系统里没有 docker.service

处理:

  • 先确保能安装 docker.io 成功:

    sudo apt install -y docker.io

再启动/启用:

复制代码
sudo systemctl start docker
# 或 sudo systemctl enable --now docker

错误 3(你最开始提到的):Docker 官方源握手失败

W: 无法下载 https://download.docker.com/... Could not handshake ... 原因(常见):

  • 网络到 download.docker.com(CloudFront)TLS 握手被干扰/不稳定

处理(最省心):

  • 不用 Docker 官方源,直接用 Ubuntu 仓库的 docker.io(就是我们这套步骤)
  • 或换网络/代理后再用官方源

4. 总结

一句话版本(最常用最稳)

复制代码
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
docker --version
相关推荐
小小小米粒6 小时前
NAT 模式, 仅主机模式 Host-Only ,桥接模式 Bridge
linux·服务器·网络
AlfredZhao9 小时前
用Docker安全驯服OpenClaw,并打通社交软件
docker·飞书·openclaw
gpio_0110 小时前
自建gitlab服务器并用sakurafrp穿透
运维·服务器·gitlab
weixin_4566469910 小时前
基于火山引擎 Ubuntu 24.04 预制镜像 30 分钟部署 OpenClaw 飞书办公助手
ubuntu·飞书·火山引擎
爱上妖精的尾巴10 小时前
8-20 WPS JS宏 正则表达式-懒惰匹配
服务器·前端·javascript
昵称只能一个月修改一次。。。10 小时前
Linux系统编程:网络编程
linux·服务器·网络
人工智能训练10 小时前
Qwen3.5 开源全解析:从 0.8B 到 397B,代际升级 + 全场景选型指南
linux·运维·服务器·人工智能·开源·ai编程
野犬寒鸦10 小时前
TCP协议核心:TCP详细图解及TCP与UDP核心区别对比(附实战解析)
服务器·网络·数据库·后端·面试
linuxxx11010 小时前
让openclaw使用系统命令:“rm“, “mkdir“, “touch“, “ls“, “cat“, “echo“
linux·服务器·windows