1. Docker 到底是什么
- 你电脑上正常跑程序:需要装依赖、配置环境、版本还要对得上(很容易踩坑)。
- Docker :把"程序 + 运行它需要的一切环境"打包成一个可运行的东西。
- 镜像(image):打包好的"模板/安装包"(只读)。
- 容器(container):镜像运行起来后的"实例/进程"(会运行、会产生数据)。
- Dockerfile:描述"怎么做出镜像"的配方。
- docker-compose.yml:一键启动多个服务(如 web + 数据库 + 缓存)。
你学习别人项目时,最常见就两种:
- 给了
Dockerfile:你需要docker build再docker run - 给了
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没开导致一些包不可见
处理:
-
先启用 universe(见上面步骤 1)
-
如果仍没有 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