从零开始:CentOS 7系统中Docker的安装与卸载全记录

ops/2025/2/11 13:13:41/

在这里插入图片描述
在这里插入图片描述

准备工作

检查系统环境,确认你的操作系统是CentOS 7,并且处于最新状态(包括更新软件包)

使用cat命令来查看/etc/centos-release文件的内容。这个文件包含了CentOS操作系统的版本信息。

  1. 打开终端。
  2. 输入以下命令并按下回车键:
cat /etc/centos-release

如果系统是CentOS 7,你会看到类似于以下的输出:

CentOS Linux release 7.x.x (Core)

这里的7.x.x会显示具体的版本号,例如7.9.2009表示CentOS 7.9版本。

这种方法非常直接,并且不需要安装额外的软件包。如果你想要更详细的信息,也可以使用其他命令,比如uname -r来查看内核版本,或者hostnamectl来获取包括操作系统在内的更多系统信息。但是,对于只想知道是否是CentOS 7的用户来说,查看/etc/centos-release是最简单的方法。

使用 yum update 命令来安装所有可用的更新。这包括了操作系统本身以及所有已安装的应用程序。

sudo yum update

安装Docker

Step 1: 安装必要的系统工具

首先,我们需要确保系统上有yum-utils这个工具集,它提供了yum-config-manager等管理仓库的实用程序。

sudo yum install -y yum-utils

Step 2: 添加软件源信息

接下来,我们将添加Docker的官方仓库地址,这里我们使用的是阿里云提供的镜像源来加速下载。

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Step 3: 更新Yum缓存(可选但推荐)

在安装之前,更新一下yum缓存是个好习惯,这样可以确保获取最新的软件包信息。

sudo yum makecache fast

Step 4: 安装Docker

现在我们可以开始安装Docker CE及其相关组件。请注意,如果你的CentOS版本较老,可能需要先检查可用的Docker版本,并选择适合的版本进行安装。

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果遇到依赖问题或特定版本不兼容的情况,可以尝试指定一个具体的版本号进行安装,例如:

sudo yum install docker-ce-<version_string> docker-ce-cli-<version_string> containerd.io

其中是你想要安装的具体版本号。

Step 5: 开启Docker服务

安装完成后,启动Docker服务,并设置为开机自启。

sudo systemctl start docker 
sudo systemctl enable docker

验证安装

验证Docker是否正确安装并且能够正常运行。可以通过运行一个简单的容器来测试:

sudo docker run hello-world

如果一切正常,你应该能看到一条消息,内容类似于“Hello from Docker!”,这表明Docker已成功安装并能正常工作。

常见问题及解决方法

在国内安装Docker时,由于网络环境的特殊性,可能会遇到一些特有的问题。

  1. 网络连接问题

由于官方Docker仓库位于海外,直接从Docker Hub下载镜像的速度可能非常慢甚至无法访问。解决这个问题的一个有效方法是使用国内的镜像源,如阿里云、网易云等提供的加速服务。

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. SELinux相关问题

如果系统启用了SELinux(Security-Enhanced Linux),可能会导致Docker容器运行失败或者权限问题。

sudo setenforce 0

长期解决方案是调整相关的SELinux策略或禁用它(不推荐在生产环境中这样做)。

  1. 内核版本兼容性

Docker要求CentOS系统的内核版本至少为3.10。如果你的CentOS版本较低,可能需要先升级内核。

uname -r

若低于3.10,则需更新系统或升级内核。

  1. 安装过程中的依赖问题

有时安装过程中会遇到依赖包冲突或者缺失的问题。

sudo yum clean all 
sudo yum install docker-ce docker-ce-cli containerd.io
  1. Docker服务启动失败

即使成功安装了Docker,服务也可能因为各种原因无法启动。

sudo systemctl status docker 
journalctl -xe

根据错误信息采取相应的措施修复。

  1. 防火墙和端口配置

某些情况下,防火墙规则可能会阻止Docker容器间的通信或外部访问容器内的服务。

卸载Docker

  1. 停止所有Docker服务。
sudo systemctl stop docker
  1. 卸载Docker CE及相关组件。
sudo yum remove docker-ce docker-ce-cli containerd.io
  1. 删除所有Docker的数据和配置文件。
sudo rm -rf /var/lib/docker 
sudo rm -rf /etc/docker 
sudo rm -rf /var/run/docker.sock
  1. 检查是否有残留的Docker RPM包,并将其删除。
rpm -qa | grep docker 
sudo yum remove <package_name>
  1. 如果不再需要docker用户组,则可以删除它。
sudo groupdel docker

注意:在卸载之前,务必确保你已经备份了所有重要的Docker镜像、容器、卷和配置文件,因为这些数据在卸载过程中会被删除。


http://www.ppmy.cn/ops/157529.html

相关文章

GitHub分支与标签完全指南:从入门到高效管理

GitHub分支与标签完全指南&#xff1a;从入门到高效管理 前言一、分支管理&#xff1a;灵活开发的关键1.1 分支的本质1.2 分支操作全解创建分支的三种姿势分支查看与切换分支合并的艺术分支删除的注意事项 二、标签管理&#xff1a;版本控制的里程碑2.1 标签类型解析2.2 标签操…

列表标签。

一.列表标签 表格是用来展示数据的&#xff0c;列表是用来布局的。 列表可分为三类&#xff1a;无序列表&#xff0c;有序列表和自定义列表。 1.1无序列表(重点) <ul>全称为unorder list&#xff0c;表示html中的无序列表&#xff0c;列表项使用<li>标签使用。…

2025年1月1日起,美国禁止在食品包装中使用PFAS+PFAS标准办理讲解

2025年1月1日起&#xff0c;美国禁止在食品包装中使用PFASPFAS标准办理讲解&#xff1a; 美国国会于2024年9月提议了H.R. 9864法案&#xff0c;即《2024年食品容器禁用PFAS法案》&#xff0c;禁止食品包装中含有故意添加的 PFAS。 根据该提案&#xff0c;《联邦食品、药品和化…

Spring Boot 线程池自定义拒绝策略:解决任务堆积与丢失问题

如何通过自定义线程池提升系统稳定性 背景 在高并发系统中&#xff0c;线程池管理至关重要。默认线程池可能导致&#xff1a; 资源浪费&#xff08;创建过多线程导致 OOM&#xff09;任务堆积&#xff08;队列满后任务被拒绝&#xff09;任务丢失&#xff08;默认拒绝策略丢…

博客项目-day02(登录功能)

登录功能 这里使用JWT令牌技术进行登录功能的实现 JWT介绍 需要导入jjwt的依赖 先看接口 传入账号密码返回token 先导入一个JWT工具类 public class JWTUtils {private static final String jwtToken "123456Mszlu!###$$";public static String createToken(Long…

在OAS中设计简单抬头显示器

在OAS中设计简单抬头显示器 本文演示了如何使用OAS工具设计抬头显示器。 简介 车载HUD是一种将关键信息投射到驾驶员前方视野中的设备&#xff0c;使驾驶员无需低头即可获取车辆状态和导航等数据。构建车载HUD的理论模型时&#xff0c;需综合考虑光学系统、投影技术、人机交…

C 移位运算符

宏定义 #define GET_BIT(n) ((1 << (n))) 用于生成一个整数&#xff0c;该整数在第 n 位上是 1&#xff0c;其余位都是 0。这个宏通常用于位操作&#xff0c;比如设置、清除或检查某个特定位置的标志位。 1 << (n)&#xff1a;这是位移操作符。它将数字 1 左移 n …

Spring Test 的作用与优势

场景设定 假设你开了一家餐厅&#xff0c;需要测试每个环节是否正常&#xff1a; 服务员点单&#xff08;Service 层&#xff09;厨师做菜&#xff08;DAO 层&#xff0c;操作数据库&#xff09;菜品配送&#xff08;Web 层&#xff0c;API 接口&#xff09; 问题来了&#…