# 在 Ubuntu 22.04 及更早版本上安装 Docker 的完整指南
Docker 作为主流的容器化技术,在 Ubuntu 系统上的部署是许多开发者和运维人员的必备技能。本文将详细介绍在 Ubuntu 22.04、20.04 和 18.04 等版本上安装 Docker 的多种方法,帮助您根据实际需求选择最适合的安装方式。
## 环境准备与系统要求
在开始安装之前,需要确保系统满足基本要求。Docker 支持 x86_64(或 amd64)、armhf、arm64 和 s390x 架构的 Ubuntu 系统。建议使用 Ubuntu 的长期支持版本,如 18.04、20.04 或 22.04。
首先更新系统软件包并安装必要的依赖:
```bash
# 更新系统软件包列表
sudo apt update
sudo apt upgrade -y
# 安装基础依赖工具
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
```
检查当前系统版本信息:
```bash
# 查看 Ubuntu 版本详情
lsb_release -a
# 或者查看版本文件
cat /etc/os-release
```
## 方法一:使用官方脚本快速安装
Docker 官方提供了一个便捷的安装脚本,适合快速部署和测试环境:
```bash
# 下载安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 执行安装
sudo sh get-docker.sh
# 安装完成后添加用户到 docker 组
sudo usermod -aG docker $USER
```
**注意**:使用脚本安装前建议查看脚本内容,了解其执行的具体操作。生产环境建议使用仓库安装方式以获得更好的维护性。
安装完成后需要重新登录或启动新的 shell 会话,以便组权限生效:
```bash
# 验证安装
docker --version
docker run hello-world
<"live.share.hbgufen.com">
<"wap.share.hbgufen.com">
<"share.share.hbgufen.com">
```
## 方法二:通过仓库安装
这是推荐的安装方式,便于后续管理和更新。
### 设置 Docker 仓库
首先添加 Docker 的官方 GPG 密钥:
```bash
# 创建密钥环目录
sudo install -m 0755 -d /etc/apt/keyrings
# 下载并导入 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg
```
添加 Docker 软件仓库:
```bash
# 根据系统架构设置仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件包索引
sudo apt update
```
### 安装 Docker 引擎
现在可以安装 Docker 及其组件:
```bash
# 安装 Docker 引擎
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动 Docker 服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
<"gov.cn.hbgufen.com">
<"nba.share.hbgufen.com">
<"www.share.okjiabao.com">
# 验证服务状态
sudo systemctl status docker
```
## 方法三:使用包文件手动安装
在某些无法访问互联网的环境中,可以手动下载 DEB 包进行安装。
访问 Docker 下载页面获取特定版本的包文件,或使用命令行工具:
```bash
# 下载特定版本的 Docker
cd /tmp
wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_20.10.12~3-0~ubuntu-focal_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce-cli_20.10.12~3-0~ubuntu-focal_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.4.12-1_amd64.deb
# 安装下载的包文件
sudo dpkg -i *.deb
# 修复可能的依赖问题
sudo apt install -f
```
## 安装后的配置与优化
Docker 安装完成后,需要进行一些基本配置以优化使用体验。
### 配置用户权限
为了避免每次使用 docker 命令都需要 sudo,将用户添加到 docker 组:
```bash
# 添加用户到 docker 组
sudo usermod -aG docker $USER
# 确认组成员身份
groups $USER
```
### 配置镜像加速器
对于国内用户,配置镜像加速器可以显著提升镜像拉取速度:
```bash
# 创建 Docker 配置目录
sudo mkdir -p /etc/docker
# 配置镜像加速器
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
<"share.m.okjiabao.com">
<"tv.share.okjiabao.com">
<"read.share.okjiabao.com">
}
}
EOF
# 重新加载配置并重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
```
### 验证安装结果
进行全面的安装验证:
```bash
# 检查 Docker 版本信息
docker --version
docker-compose --version
# 测试基础功能
docker run --rm hello-world
# 检查系统信息
docker info
# 测试镜像拉取和运行
docker pull ubuntu:20.04
docker run -it --rm ubuntu:20.04 cat /etc/os-release
```
## 常见问题排查
### 服务启动失败
如果 Docker 服务无法启动,检查服务状态和日志:
```bash
# 查看服务状态
sudo systemctl status docker
# 查看详细日志
sudo journalctl -u docker.service
# 检查内核支持
uname -r
```
### 网络连接问题
配置 Docker 网络和代理:
```bash
# 创建 Docker 服务目录
sudo mkdir -p /etc/systemd/system/docker.service.d
# 配置 HTTP 代理(如需要)
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
<"share.tv.okjiabao.com">
<"live.share.okjiabao.com">
<"wap.share.okjiabao.com">
EOF
# 重新加载配置
sudo systemctl daemon-reload
sudo systemctl restart docker
```
### 存储驱动问题
检查并配置存储驱动:
```bash
# 检查当前存储驱动
docker info | grep "Storage Driver"
# 查看可用存储驱动
sudo docker info | grep "Storage Driver"
```
## 安装 Docker Compose
虽然 Docker Engine 已经包含了 compose 功能,但独立版本的 Docker Compose 在某些场景下仍有价值:
```bash
# 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 设置执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建符号链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
docker-compose --version
```
## 版本兼容性说明
不同 Ubuntu 版本与 Docker 版本的兼容性需要注意:
- **Ubuntu 22.04**:支持 Docker 所有当前功能
- **Ubuntu 20.04**:完全支持,是稳定的选择
- **Ubuntu 18.04**:支持但建议升级到更新的版本
检查内核版本对 Docker 功能的支持:
```bash
# 检查内核版本和功能
uname -r
cat /proc/sys/kernel/randomize_va_space
# 检查 cgroups 支持
cat /proc/filesystems | grep cgroup
```
## 维护与升级
定期维护 Docker 环境:
```bash
# 清理无用镜像和容器
docker system prune -f
# 检查更新
sudo apt update
apt list --upgradable | grep docker
# 执行升级
sudo apt upgrade docker-ce docker-ce-cli
```
## 安全建议
增强 Docker 安全性:
```bash
# 定期审计容器
docker ps -q | xargs docker inspect
<"share.share.okjiabao.com">
<"gov.cn.okjiabao.com">
<"nba.share.okjiabao.com">
# 检查容器安全配置
docker container ls --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
# 监控资源使用
docker stats --no-stream
```
通过本指南,您应该能够在 Ubuntu 22.04 及更早版本上成功安装和配置 Docker。根据您的具体需求选择适合的安装方法,并遵循最佳实践进行配置,将为您的容器化之旅奠定坚实基础。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19545/viewspace-3101859/ ,如需转载,请注明出处,否则将追究法律责任。