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
相关推荐
名字还没想好☜1 分钟前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂19 分钟前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
Baron X20 分钟前
Gitea Docker 部署教程
docker·gitea
Brilliantwxx43 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
^yi1 小时前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
Kina_C1 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
Android洋芋2 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
2601_964702892 小时前
Claude Opus 5 API 开发实战:对话、文本生成与结构化输出
java·服务器·前端
聚焦前沿2 小时前
水动力优化导流罩:原理、数据与实船验证
大数据·服务器·数据库·人工智能
hkj88082 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu