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
相关推荐
KOYUELEC光与电子努力加油6 小时前
JAE日本航空电子推出满足汽车市场小型防水最新需求的MX80系列连接器
服务器·科技·单片机·汽车
再ZzZ6 小时前
Docker快速部署Kafka(内网通用版本)
docker·容器·kafka
XZY0287 小时前
如何使用grpc
运维·服务器
rleS IONS7 小时前
SQL2000在win10上安装的方法
运维·服务器
Stack Overflow?Tan907 小时前
linux ubuntu22.04安装ROS2humble完整版的流程
linux·docker·ros2
zly35008 小时前
centos7 sshd无法启动
linux·运维·服务器
IMPYLH8 小时前
Linux 的 hostid 命令
linux·运维·服务器·bash
山峰哥8 小时前
告别“点点点”:AI 如何重构我们的测试体系与质量防线
服务器·汇编·数据库·人工智能·性能优化·重构
编程大师哥9 小时前
Linux 命名管道(FIFO)通信 超清晰讲解
linux·运维·服务器
Smile_2542204189 小时前
linux服务器清理磁盘
linux·运维·服务器