悠悠楠杉
【Docker】linux安装docker
本文详细讲解在主流Linux发行版(Ubuntu/CentOS/RHEL)上安装Docker引擎的完整流程,涵盖版本选择、依赖处理、用户组配置及验证方法,并对比不同发行版的安装差异。
一、为什么选择Docker?
当我们在开发中遇到"在我机器上能跑"的经典问题时,Docker通过容器化技术提供了标准化的解决方案。与虚拟机不同,Docker容器直接共享主机内核,这使得其在保持隔离性的同时,资源消耗降低80%以上。根据2023年云原生基金会(CNCF)报告,78%的生产环境已采用容器化部署。
二、安装前的关键决策
2.1 版本选择策略
- CE(社区版):适合个人开发者,更新周期为每月
- EE(企业版):提供SLA保障,建议关键业务使用
- 版本号规范:20.10.x为当前稳定分支,需避免使用已终止支持的版本(如17.x)
2.2 系统要求检查
bash
检查内核版本(需3.10+)
uname -r
验证cgroups可用性
grep cgroup /proc/filesystems
三、分步安装指南
3.1 Ubuntu/Debian系安装
bash
卸载旧版本(全新安装可跳过)
sudo apt-get remove docker docker-engine docker.io containerd runc
设置APT源
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
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-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.2 RHEL/CentOS系安装
bash
添加yum源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
解决依赖冲突(仅CentOS 7需要)
sudo yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x8664/stable/Packages/containerd.io-1.6.21-3.1.el7.x8664.rpm
安装主程序
sudo yum install docker-ce docker-ce-cli
四、安装后关键配置
4.1 用户权限管理
bash
将当前用户加入docker组
sudo usermod -aG docker $USER
newgrp docker # 立即生效无需重启
验证权限
docker run --rm hello-world
4.2 存储驱动优化
编辑/etc/docker/daemon.json
:
json
{
"storage-driver": "overlay2",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
4.3 生产环境建议
bash
限制容器资源(示例)
docker run -it --cpus=1.5 --memory=2g nginx
启用live-restore功能
sudo systemctl edit docker.service
添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --live-restore
五、版本升级与回滚
查看可用版本:
bash apt-cache madison docker-ce
指定版本安装:
bash sudo apt-get install docker-ce=5:24.0.2-1~ubuntu.22.04~jammy
回滚操作:
bash sudo apt-mark hold docker-ce
六、常见问题排查
问题1:iptables规则冲突bash
解决方案:
sudo iptables -P FORWARD ACCEPT
问题2:磁盘空间不足bash
修改存储位置:
sudo systemctl stop docker
sudo rsync -aqxP /var/lib/docker/ /new/path
问题3:容器时间不同步
bash
docker run -v /etc/localtime:/etc/localtime:ro ...
专业提示:使用
docker system df
可监控磁盘使用情况,定期执行docker system prune
清理无用对象