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
相关推荐
代码AI弗森1 小时前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
^—app5668662 小时前
游戏运存小启动不起来临时解决方法
运维·服务器
Ujimatsu2 小时前
虚拟机安装Debian 13.x及其常用软件(2026.4)
linux·运维·ubuntu
志栋智能3 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
Edward111111115 小时前
4月28日防火墙问题
linux·运维·服务器
拾贰_C5 小时前
【Agent | openai | Streaming | 】流式输出Streaming
ubuntu·面试·prompt
想学后端的前端工程师5 小时前
【补充内外网突然不通的情况】
运维·服务器
跨境数据猎手6 小时前
跨境独立站系统技术拆解(附带源码)
服务器·前端·php
小龙在慢慢变强..7 小时前
目录结构(FHS 标准)
linux·运维·服务器