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
相关推荐
Julien20047 小时前
控制 SELinux 文件上下文
linux·运维·服务器
sulikey7 小时前
Linux Core Dump 完全指南:从原理到实战的崩溃调试手册。什么是core dump?程序报错core dumped怎么办?
linux·服务器·操作系统·调试·coredump
Lifangyun_WD7 小时前
第一次租 GPU 服务器怎么开始?镜像、SSH、数据存储和停机前要做什么
服务器·云计算·gpu算力·gpu算力租赁
DevLoom_9 小时前
SD卡插电脑提示:驱动器中的磁盘未被格式化?恢复数据正确处理步骤
运维·服务器·电脑
Orange_sparkle9 小时前
从 Docker 到 Doris:建立后端基础设施全景图
运维·docker·ai·容器·claude code
yyuuuzz10 小时前
记一次 VPS 性能排查:共享 CPU 突发额度导致的限流
运维·服务器·人工智能
冰雪青松10 小时前
Ubuntu 运维命令大全:从入门到精通的实战参考手册
运维·服务器·ubuntu
gx234810 小时前
控制器管理
docker·容器·kubernetes
前端 贾公子11 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
CDN36011 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络