1. 为什么选择清华源安装Docker?
在Ubuntu 20.04上安装Docker时,使用国内镜像源能显著提升下载速度。清华大学的开源软件镜像站(Tsinghua Open Source Mirror)是国内最稳定、最完整的开源镜像之一,特别适合在国内网络环境下使用。实测表明,通过清华源安装Docker的速度可以达到直接访问官方源的5-10倍。
注意:虽然Ubuntu官方仓库也提供Docker包,但版本往往较旧。通过Docker官方仓库安装能获得最新稳定版,这也是我们推荐的方式。
2. 环境准备与源配置
2.1 系统要求检查
首先确认你的Ubuntu 20.04系统满足以下条件:
- 64位架构(运行
uname -m应显示x86_64或aarch64) - 内核版本3.10或更高(运行
uname -r查看) - 已配置sudo权限的用户
2.2 备份现有源配置
在修改源配置前,建议先备份原有配置:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2.3 配置清华源
- 编辑源列表文件:
sudo nano /etc/apt/sources.list- 替换为以下清华源配置(Ubuntu 20.04 Focal):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse- 更新软件包索引:
sudo apt update && sudo apt upgrade -y3. Docker安装完整流程
3.1 安装依赖工具
首先安装必要的工具包:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release3.2 添加Docker官方GPG密钥
虽然使用清华源,但仍需验证Docker官方签名:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg3.3 设置Docker清华镜像源
创建Docker源配置文件:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null3.4 安装Docker引擎
- 更新源并安装:
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io- 验证安装:
sudo docker run hello-world成功运行应显示"Hello from Docker!"消息。
4. 安装后配置与优化
4.1 非root用户权限配置
为避免每次使用docker都要加sudo,将当前用户加入docker组:
sudo usermod -aG docker $USER newgrp docker # 立即生效4.2 配置Docker镜像加速
编辑或创建daemon.json配置文件:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } EOF重启Docker服务使配置生效:
sudo systemctl restart docker4.3 设置开机自启
启用Docker服务开机自动启动:
sudo systemctl enable docker5. 常见问题解决方案
5.1 GPG密钥错误
如果遇到"NO_PUBKEY"错误,手动导入密钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [缺失的密钥ID]5.2 服务启动失败
检查服务状态和日志:
sudo systemctl status docker journalctl -xe -u docker常见原因包括:
- 内核模块未加载:尝试
sudo modprobe overlay - 存储驱动冲突:在daemon.json中指定"storage-driver": "overlay2"
5.3 镜像拉取缓慢
除了配置registry-mirrors外,还可以:
- 直接指定镜像源拉取:
docker pull registry.cn-hangzhou.aliyuncs.com/library/ubuntu:20.04- 使用国内镜像仓库:
docker pull docker.mirrors.ustc.edu.cn/library/nginx:latest6. 进阶配置与使用技巧
6.1 Docker Compose安装
虽然Docker Engine已安装,但Docker Compose需要单独安装:
sudo curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose验证安装:
docker-compose --version6.2 容器资源限制
为防止容器占用过多资源,可以运行时限制:
docker run -it --memory="1g" --cpus="1.5" ubuntu:20.046.3 数据持久化最佳实践
推荐使用命名卷而非绑定挂载:
docker volume create mydata docker run -v mydata:/data ubuntu:20.04查看卷信息:
docker volume inspect mydata6.4 容器网络配置
创建自定义网络:
docker network create --driver bridge mynet运行容器时指定网络:
docker run --network=mynet -d nginx7. 生产环境建议
7.1 日志管理配置
限制容器日志大小,防止磁盘爆满:
sudo tee -a /etc/docker/daemon.json <<-'EOF' { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } EOF7.2 安全加固措施
- 禁止容器特权模式:
docker run --security-opt=no-new-privileges ubuntu:20.04- 启用用户命名空间隔离:
sudo tee -a /etc/docker/daemon.json <<-'EOF' { "userns-remap": "default" } EOF7.3 监控与维护
安装cAdvisor监控容器资源使用:
docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ gcr.io/cadvisor/cadvisor:v0.47.0访问 http://localhost:8080 查看监控数据。