首页/新闻资讯/正文详情

CentOS下Docker安装与配置全指南

发布时间:2026/11/5 7:09:36 来源:云帆数科 栏目:资讯中心
CentOS下Docker安装与配置全指南
1. 环境准备与旧版本清理在开始安装Docker之前我们需要确保系统环境干净且配置正确。我见过太多因为旧版本残留导致的诡异问题所以彻底清理是第一步。1.1 检查现有Docker组件执行以下命令查看系统中已安装的Docker相关软件包rpm -qa | grep docker yum list installed | grep docker这个检查步骤很多教程都会忽略但实际工作中非常重要。我曾经遇到过因为漏查某个组件导致新版本无法正常启动的情况。1.2 彻底卸载旧版本对于CentOS/RHEL系统完整的卸载命令应该包括sudo yum remove -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-selinux \ docker-ce \ docker-ce-cli \ containerd.io注意如果之前使用过其他方式安装比如二进制包还需要手动删除相关文件sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd2. 配置Docker仓库2.1 安装必要工具包在配置仓库前我们需要确保系统具备必要的工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2这些工具的作用分别是yum-utils提供yum-config-manager等实用工具device-mapper-persistent-data和lvm2Docker依赖的存储驱动2.2 设置稳定版仓库推荐使用国内镜像源加速下载这里以阿里云为例sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo然后修改repo文件中的URLsudo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo2.3 更新yum缓存执行以下命令使新仓库生效sudo yum makecache fast经验之谈如果遇到缓存更新失败可以尝试先清理旧缓存sudo yum clean all3. Docker引擎安装3.1 安装最新稳定版推荐安装特定版本而非最新版以避免潜在的兼容性问题sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin如果想安装特定版本可以先列出可用版本yum list docker-ce --showduplicates | sort -r然后选择安装sudo yum install -y docker-ce-VERSION_STRING docker-ce-cli-VERSION_STRING containerd.io3.2 验证安装安装完成后检查Docker组件是否完整rpm -qa | grep docker which docker docker --version4. 服务管理与配置4.1 启动Docker服务启动Docker并设置开机自启sudo systemctl start docker sudo systemctl enable docker检查服务状态sudo systemctl status docker4.2 测试运行运行测试容器验证安装sudo docker run hello-world如果看到欢迎信息说明安装成功。5. 配置优化5.1 镜像加速配置创建或修改daemon.json配置文件sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://registry.docker-cn.com, https://mirror.ccs.tencentyun.com, https://docker.mirrors.ustc.edu.cn ], exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF然后重新加载配置sudo systemctl daemon-reload sudo systemctl restart docker5.2 用户权限配置为了避免每次使用docker命令都需要sudo可以将用户加入docker组sudo groupadd docker sudo usermod -aG docker $USER newgrp docker测试非root用户权限docker run hello-world6. 常见问题排查6.1 启动失败排查如果Docker启动失败可以查看详细日志journalctl -xe -u docker常见问题包括存储驱动不兼容防火墙阻止端口冲突6.2 镜像拉取问题如果遇到镜像拉取慢或失败检查镜像加速配置是否生效docker info | grep Mirrors尝试直接指定镜像仓库docker pull registry.docker-cn.com/library/ubuntu:latest6.3 存储空间管理Docker会占用大量磁盘空间需要定期清理docker system prune -a -f查看磁盘使用情况docker system df7. 生产环境建议7.1 安全加固措施配置TLS加密远程连接启用用户命名空间隔离限制容器资源使用定期更新Docker版本7.2 监控与日志建议配置日志轮转资源监控容器健康检查示例日志配置sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } } EOF8. 进阶配置8.1 存储驱动选择根据系统环境选择合适的存储驱动docker info | grep Storage Driver推荐使用overlay2如果需要修改sudo vim /etc/docker/daemon.json添加{ storage-driver: overlay2 }8.2 网络配置查看当前网络配置docker network ls创建自定义网络docker network create --driver bridge --subnet 172.28.0.0/16 my-net9. 卸载Docker如果需要完全卸载Dockersudo yum remove -y docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd清理残留配置文件sudo rm -rf /etc/docker sudo rm -rf /etc/containerd10. 版本升级升级Docker版本步骤停止所有容器docker stop $(docker ps -aq)备份重要数据卸载旧版本安装新版本恢复配置启动服务11. 容器运行时选择除了默认的containerd还可以配置其他运行时sudo yum install -y cri-o然后在daemon.json中配置{ runtimes: { crio: { path: /usr/bin/crio } } }12. 性能调优建议调整swappiness参数echo vm.swappiness 1 | sudo tee -a /etc/sysctl.conf sudo sysctl -p优化文件系统sudo tune2fs -O dir_index,has_journal /dev/sda1调整内核参数echo fs.file-max 1000000 | sudo tee -a /etc/sysctl.conf13. 容器安全扫描安装安全扫描工具docker pull aquasec/trivy扫描镜像漏洞docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image ubuntu:latest14. 备份与恢复备份Docker数据sudo tar -czvf docker-backup.tar.gz /var/lib/docker恢复数据sudo systemctl stop docker sudo rm -rf /var/lib/docker sudo tar -xzvf docker-backup.tar.gz -C / sudo systemctl start docker15. 容器编排准备安装Docker Composesudo curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证安装docker-compose --version16. 生产环境部署检查清单[ ] 确认Docker版本符合要求[ ] 配置镜像加速[ ] 设置志轮转[ ] 配置资源限制[ ] 启用监控[ ] 配置备份策略[ ] 安全加固措施到位17. 内核要求与检查Docker对Linux内核有特定要求检查内核版本uname -r推荐内核参数配置cat /etc/sysctl.d/docker.conf EOF net.ipv4.ip_forward 1 net.bridge.bridge-nf-call-iptables 1 net.bridge.bridge-nf-call-ip6tables 1 EOF sudo sysctl --system18. 离线环境安装对于无法连接互联网的环境在有网络的环境中下载RPM包mkdir -p ~/docker-offline yum install --downloadonly --downloaddir~/docker-offline docker-ce docker-ce-cli containerd.io将目录拷贝到目标机器安装sudo yum localinstall -y ~/docker-offline/*.rpm19. 多版本管理使用yum versionlock管理版本sudo yum install -y yum-plugin-versionlock sudo yum versionlock docker-ce查看锁定状态sudo yum versionlock list20. 容器网络调试常用网络调试命令# 查看容器IP docker inspect -f {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}} container_name # 进入容器网络命名空间 docker run -it --net container:container_name nicolaka/netshoot21. 存储卷管理创建持久化卷docker volume create my-vol查看卷详情docker volume inspect my-vol22. 容器资源限制运行容器时限制资源docker run -it --cpus1.5 --memory512m ubuntu动态更新限制docker update --cpus2 --memory1g container_name23. 容器健康检查在Dockerfile中添加健康检查HEALTHCHECK --interval30s --timeout3s \ CMD curl -f http://localhost/ || exit 1查看健康状态docker inspect --format{{json .State.Health}} container_name24. 容器日志管理查看容器日志docker logs -f --tail 100 container_name按时间筛选日志docker logs --since 2023-01-01T00:00:00 container_name25. 容器时区配置解决容器内时区问题docker run -e TZAsia/Shanghai -v /etc/localtime:/etc/localtime:ro ubuntu或者在Dockerfile中配置RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime26. 容器SSH访问虽然不推荐但有时需要SSH访问容器docker exec -it container_name /bin/bash或者安装SSH服务RUN apt-get update apt-get install -y openssh-server RUN mkdir /var/run/sshd RUN echo root:password | chpasswd EXPOSE 22 CMD [/usr/sbin/sshd, -D]27. 容器与主机文件交换从主机复制到容器docker cp host_file container_name:/path/in/container从容器复制到主机docker cp container_name:/path/to/file host_path28. 容器环境变量管理查看容器环境变量docker exec container_name env运行时传递变量docker run -e VAR1value1 -e VAR2value2 ubuntu29. 容器端口映射查看端口映射docker port container_name随机映射端口docker run -P nginx指定端口映射docker run -p 8080:80 nginx30. 容器资源监控使用内置命令监控docker stats使用cAdvisor全面监控docker run -d --namecadvisor \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8080:8080 \ --detachtrue \ google/cadvisor:latest

相关推荐

Docker镜像层级原理与跨版本容器化实践
Docker镜像层级原理与跨版本容器化实践

1. 镜像层级原理深度解析当我们在宿主机上执行docker pull ubuntu:24.04时,Docker引擎实际上是在构建一个由多层只读文件系统堆叠而成的镜像结构。这个看似简单的操作背后隐藏着精妙的设计哲学:联合文件系统(OverlayFS)&#xff1… · 2026/11/5 7:09:36

仿生大脑设计:从生物启发架构到工业应用实践
仿生大脑设计:从生物启发架构到工业应用实践

1. 项目概述"仿生大脑"这个概念在AI领域已经存在多年,但直到最近几年才真正具备了落地的可能性。作为一名在神经科学和机器学习交叉领域工作多年的研究者,我发现传统AI系统与生物神经系统之间仍存在巨大鸿沟。这次的设计实践源于一个简单却深刻… · 2026/11/5 7:09:36

工业防爆无线AP选型指南:Exd IIB T6与Exd IIC T6对比
工业防爆无线AP选型指南:Exd IIB T6与Exd IIC T6对比

1. 防爆无线AP选型的重要性与挑战在石油化工、天然气、制药等工业领域,无线网络已经从可有可无的辅助设施,转变为支撑生产调度、人员定位、视频监控和应急响应的关键基础设施。作为这套系统的"第一道防线",防爆无线AP的选型直接关系… · 2026/11/5 7:08:36

高效会议互动设计:10个实战方案提升40%会议效率
高效会议互动设计:10个实战方案提升40%会议效率

1. 会议互动环节设计的核心价值会议冷场和跑题是职场中最常见的两大痛点。根据我过去五年为37家企业设计会议流程的经验,传统会议模式中平均每小时的无效时间高达18分钟。而精心设计的互动环节能将会效提升40%以上,这个数据来自我们对实施新会议模式的23… · 2026/11/5 8:32:13

工业防爆无线AP选型指南:IIB与IIC标准对比
工业防爆无线AP选型指南:IIB与IIC标准对比

1. 防爆无线AP选型背景解析 在石油化工、煤矿井下、危化品仓储等特殊工业场景中,常规无线网络设备存在严重安全隐患。一个电火花就可能引发灾难性事故——这正是防爆无线接入点(AP)存在的核心价值。这类设备通过特殊设计确保在易燃易爆环境中… · 2026/11/5 8:32:13

楼宇微网虚拟储能系统设计与优化实践
楼宇微网虚拟储能系统设计与优化实践

1. 项目概述与背景解析 楼宇微网作为分布式能源系统的重要应用形式,正在成为建筑领域实现"双碳"目标的关键技术路径。传统楼宇微网主要依赖物理储能设备(如锂电池)来平抑可再生能源的波动性,但这种方案面临着投资成本高… · 2026/11/5 8:32:13

数学建模国赛C题实战指南:数据预处理、模型选择与结果检验全解析
数学建模国赛C题实战指南:数据预处理、模型选择与结果检验全解析

简介:这份资源是2022年全国大学生数学建模竞赛C题的MATLAB实现代码,面向正在备战数学建模国赛、希望参考获奖方案实现细节的高校学生与建模爱好者。压缩包共24个文件,约405KB,以13个.m脚本为主体,配合6个.mat数据文件和… · 2026/11/5 8:32:13

预期功能安全SOTIF:零故障为何仍会撞车?
预期功能安全SOTIF:零故障为何仍会撞车?

简介:面向智能网联汽车功能安全从业者、系统与软件工程师及高校相关专业学习者,这份资料提供预期功能安全(SOTIF)领域的核心标准文本,重点解决自动驾驶与辅助驾驶系统在无故障情形下因性能局限、感知偏差和算法约束所引… · 2026/11/5 8:32:13

OpenClaw智能体集群:工业级部署与优化实践
OpenClaw智能体集群:工业级部署与优化实践

1. 项目概述:智能体集群的工业级实践 在自动化运维和分布式计算领域,智能体集群正成为企业基础设施的新标配。OpenClaw作为轻量级智能体管理框架,其核心价值在于将复杂的集群管理简化为可编程的标准化操作。我在金融行业的基础架构升级项目中… · 2026/11/5 8:31:12

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码