1. Docker Engine 简介与准备工作
Docker Engine 是 Docker 的核心组件,负责容器的创建、运行和管理。它就像一台虚拟化的"发动机",让开发者能够将应用及其依赖打包成标准化单元。在开始安装前,我们需要做好以下准备工作:
系统要求检查:
- CentOS 7/8:内核版本需 ≥ 3.10
- Ubuntu:推荐 20.04 LTS 或更高版本
- EulerOS:基于 openEuler 的华为云定制系统
验证内核版本命令:
uname -r清理旧版本(如果存在):
# 通用清理命令(适配不同系统) sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine || \ sudo apt remove docker docker-engine docker.io containerd runc我曾在实际项目中遇到过因旧版本残留导致的冲突问题,特别是当系统之前安装过非官方源 Docker 时。建议执行完卸载命令后,手动检查/var/lib/docker/目录是否已清空。
2. CentOS 7 安装 Docker Engine
2.1 配置国内镜像源
国内用户推荐使用阿里云镜像加速:
sudo yum install -y yum-utils sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo避坑提示:如果遇到 GPG 密钥报错,可临时关闭验证:
sudo yum-config-manager --save --setopt=docker-ce-stable.gpgcheck=02.2 安装 Docker CE
执行安装命令:
sudo yum makecache fast sudo yum install -y docker-ce docker-ce-cli containerd.io版本锁定技巧:生产环境建议固定版本号:
sudo yum install docker-ce-20.10.12 docker-ce-cli-20.10.122.3 验证安装
启动服务并测试:
sudo systemctl start docker sudo docker run hello-world我曾遇到 SELinux 导致容器无法启动的情况,解决方案:
sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config3. Ubuntu 20.04 安装 Docker Engine
3.1 配置APT源
设置阿里云镜像源:
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"3.2 安装Docker
推荐安装特定版本:
sudo apt update sudo apt install -y docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal实用技巧:避免自动升级:
sudo apt-mark hold docker-ce docker-ce-cli3.3 非root用户配置
将当前用户加入docker组:
sudo usermod -aG docker $USER newgrp docker # 立即生效4. Huawei Cloud EulerOS 安装指南
4.1 配置华为云源
cd /etc/yum.repos.d/ sudo wget https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo -O /etc/yum.repos.d/openEuler.repo sudo yum makecache4.2 安装Docker
sudo yum install -y docker华为云特有问题:如果遇到依赖冲突,可尝试:
sudo yum install --nobest -y docker4.3 配置镜像加速
创建配置文件:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://<your-accelerator>.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"] } EOF sudo systemctl restart docker5. 通用配置与优化
5.1 镜像加速配置
各系统通用的镜像加速方案:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ], "log-driver": "json-file", "log-opts": { "max-size": "100m" } } EOF sudo systemctl daemon-reload sudo systemctl restart docker5.2 磁盘空间管理
防止Docker占用过多空间:
# 查看磁盘使用 docker system df # 定期清理 docker system prune -af生产环境建议:修改默认存储位置:
sudo systemctl stop docker sudo rsync -aP /var/lib/docker /new/location sudo mv /var/lib/docker /var/lib/docker.bak sudo ln -s /new/location/docker /var/lib/docker sudo systemctl start docker6. 验证与故障排查
6.1 基础验证
运行测试容器:
docker run --rm -it alpine sh -c "echo 'Hello from Alpine'"检查组件版本:
docker --version docker-compose --version containerd --version6.2 常见问题解决
问题1:端口冲突
netstat -tulnp | grep <端口号>问题2:存储驱动异常检查当前驱动:
docker info | grep "Storage Driver"问题3:网络不通测试容器网络:
docker run --rm busybox ping -c 4 baidu.com7. 安全加固建议
7.1 基础安全配置
禁用API公开访问:
sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/override.conf <<-'EOF' [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375 --containerd=/run/containerd/containerd.sock EOF sudo systemctl daemon-reload7.2 用户权限控制
创建专用docker管理用户:
sudo useradd -m -G docker docker-admin sudo passwd docker-admin审计建议:定期检查docker组用户:
getent group docker