当前位置: 首页 > news >正文

三大主流Linux系统Docker Engine安装与配置实战指南

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=0

2.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.12

2.3 验证安装

启动服务并测试:

sudo systemctl start docker sudo docker run hello-world

我曾遇到 SELinux 导致容器无法启动的情况,解决方案:

sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

3. 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-cli

3.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 makecache

4.2 安装Docker

sudo yum install -y docker

华为云特有问题:如果遇到依赖冲突,可尝试:

sudo yum install --nobest -y docker

4.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 docker

5. 通用配置与优化

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 docker

5.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 docker

6. 验证与故障排查

6.1 基础验证

运行测试容器:

docker run --rm -it alpine sh -c "echo 'Hello from Alpine'"

检查组件版本:

docker --version docker-compose --version containerd --version

6.2 常见问题解决

问题1:端口冲突

netstat -tulnp | grep <端口号>

问题2:存储驱动异常检查当前驱动:

docker info | grep "Storage Driver"

问题3:网络不通测试容器网络:

docker run --rm busybox ping -c 4 baidu.com

7. 安全加固建议

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-reload

7.2 用户权限控制

创建专用docker管理用户:

sudo useradd -m -G docker docker-admin sudo passwd docker-admin

审计建议:定期检查docker组用户:

getent group docker
http://www.cnnetsun.cn/news/3338473.html

相关文章:

  • Dify工作流引擎:AI自动化内容生产实战指南
  • 数据库系统原理实战:从经典SQL考题到高频面试题精解
  • 3分钟掌握Umi-OCR:免费离线OCR软件的完整使用指南
  • PGSQL(PostgreSQL)数据库入门指南:核心优势、架构解析与一站式安装实践
  • 【Linux】Linux 系统编程——tree 命令的进阶用法与实战场景
  • 【零成本启动AI开发】阿里云DSW免费GPU实例实战指南
  • C语言位操作实战:嵌入式GPIO寄存器4种操作宏封装与避坑指南
  • Linux命令之dpkg:从基础安装到高级系统维护的实战指南
  • ChatGPT写短视频脚本:7天从零到日更10条,实测转化率提升217%的SOP流程
  • Horos:免费开源的macOS医学影像查看器终极指南
  • Day21-Spring事件机制:观察者模式在企业级解耦中的应用
  • ROS C++消息生成:从.msg定义到可发布订阅的完整流程
  • 模板驱动型文档自动化:从Word手工排版到工程化流水线
  • 3分钟解决GitHub下载慢:Fast-GitHub终极加速指南
  • CISP-PTE 靶场环境复现:基于Docker快速搭建5类漏洞实战平台
  • 5种高效方法:使用NoSleep实用工具实现Windows防休眠完整解决方案
  • 从数据切分到精排优化:构建高精度RAG智能导购系统的全链路实践
  • 图像缩放实战:从原理到OpenCV,剖析最近邻、双线性与双三次插值
  • 企业AI转型实战指南:从准备到落地的关键策略
  • 终极指南:如何使用Awoo Installer高效安装Switch游戏
  • 【实战指南】五大主流视频打架行为数据集评测与应用场景解析
  • Simulink 2024b 三相坐标变换仿真:从 Clarke/Park 到对称分量法的 5 种模型对比
  • 模板驱动型文档自动化:从Word填空到业务逻辑编码
  • STM32F103C8T6 + HC-SR04 超声波测距:从 2cm 到 4m 的 3 种滤波算法实测对比
  • 人脸识别系统 42(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Claude Code 换成了 Kimi K2.5 后,我再也回不去了
  • Horos医学影像软件:macOS上免费开源的DICOM工作站完整指南
  • 光学设计误区解析:5 种 ZEMAX 像差操作数(LONA/AXCL/FCGT等)的适用场景与数值解读
  • Mythos Preview:AI自动攻防如何重塑企业安全工作流
  • PilotGo-web权限控制方案:构建安全的企业级运维管理系统