CentOS虚拟机中Docker引擎与阿里云镜像加速器安装教程以及错误Job for docker.service failed because the ...的解决办法

首先,如果电脑中存在已经安装过旧版本的docker需要先进行卸载

docker中存在好几个依赖包,没卸载干净会影响下一次的docker安装

卸载流程如下

# 停止并禁用Docker服务
sudo systemctl stop docker
sudo systemctl disable docker

# 移除Docker CE及相关组件(如果使用的是yum)
sudo yum remove docker-ce docker-ce-cli containerd.io

# 如果使用的是dnf(CentOS 8及更高版本可能使用dnf而非yum)
sudo dnf remove docker-ce docker-ce-cli containerd.io

# 清理残留数据和配置文件(根据系统实际情况可选)
sudo rm -rf /var/lib/docker

# 如果安装了docker-compose,则需要单独卸载
sudo yum remove docker-compose # 对于使用yum的系统
sudo dnf remove docker-compose # 对于使用dnf的系统

# 更新缓存并移除不再需要的软件包
sudo yum clean all # 对于使用yum的系统
sudo dnf autoremove # 对于使用dnf的系统
Docker引擎安装

卸载完毕后就可以打开Docker的官网进行安装,Docker有两种版本,社区版(Docker Engine)和专业版我们打开官网
Docker Docs

点击Docker Engine的Install进入选择Linux系统页面

上图中即代表了目前支持安装docker的Linux系统,目前CentOS中仅支持CentOS6、CentOS7、CentOS8。

如果前面已经卸载干净就可以忽略官网教程第一步卸载了,可以直接进入到安装软件包(提供实用程序)并设置存储库。yum-utils,yum-config-manager

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

然后就是安装最新版本的引擎

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

 安装引擎大概会需要几分钟的安装时间,安装成功后就可以进入启动阶段了

sudo systemctl start docker

通过语句查询目前的docker版本

docker -v

可以通过查看进程或者是查看启动状态来查询目前docker的启动情况
通过查看进程:

ps aux |grep docker

如果启动正常会显示以下代码

通过查看启动状态:

sudo systemctl status docker

启动正常会显示以下代码

接下来介绍设置开机自启动docker,避免每一次重启动需要手动启动docker

   sudo systemctl enable docker.service
   

确认Docker服务已被设置为开机启动状态:

   systemctl list-unit-files | grep docker.service
   

如果输出结果中显示的是 docker.service enabled,则表示Docker服务将在系统启动时自动运行。

安装阿里云镜像

安装阿里云镜像是为了加速我们在安装其他镜像时的下载速度,还是很有必要的

打开阿里云官网链接阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,找到阿里云的镜像服务

打管理控制台,可以看到镜像加速器,我们选择CentOS版本安装官网代码教程安装即可

sudo mkdir -p /etc/docker  # 创建一个名为/etc/docker的目录,用于存放Docker的配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'  # 使用tee命令将输入重定向到/etc/docker/daemon.json文件中,并以EOF作为结束标记
{
  "registry-mirrors": ["https://kfejf8a4.mirror.aliyuncs.com"]  # 配置阿里云镜像加速器作为Docker的镜像仓库
}
EOF
sudo systemctl daemon-reload  # 重新加载systemd的配置文件,以使对Docker配置的更改生效
sudo systemctl restart docker  # 重启Docker服务,以使新的配置生效

这样阿里云镜像加速器就安装完成了!耶( •̀ ω •́ )y

接下来可以去Docker Hub上下载镜像了

---------------------------------------------------------分割线---------------------------------------------------------

安装过程中可能遇见的问题

笔者在安装阿里云镜像后的重启docker时发生了报错

Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.(docker.service的作业失败,因为尝试启动服务的频率太高。有关详细信息,请参阅“systemctl-status-docker.service”和“journalctl-xe”。要强制启动,请再次使用“systemctl reset failed docker.service”,然后再使用“systemctl start docker.server”。)

当时头疼了很久,建议按照以下流程来排除错误

1.查看Docker服务当前状态和详细错误信息:

   systemctl status docker.service
   

这将显示Docker服务的具体状态以及失败原因。
2.检查系统日志以获取更详细的错误报告:

   journalctl -xe
   

 该命令会展示最近的日志条目,帮助您找到导致Docker无法启动的错误消息或异常情况。
3.根据错误信息,可能的原因包括但不限于:

  • 系统资源不足(如内存、磁盘空间等)。
  • Docker配置文件错误(位于 /etc/docker/daemon.json)。
  • 内核模块未正确加载(例如 overlay2 文件系统驱动)。
  • 依赖的服务未运行或配置不正确(如 containerd)。
  • 权限问题或文件夹权限设置不正确(如 /var/lib/docker)。
  • 如果发现是配置问题,请根据错误提示修复相应的配置文件。
  • 若是资源限制,则尝试释放更多资源给Docker使用。
  • 如果内核模块没有加载,请确保已安装并启用必要的内核模块。
  • 对于依赖服务的问题,请确保所有相关服务都处于正常运行状态。
  1. 确保内核模块已加载: Docker需要某些特定内核模块才能正常运行,例如 overlay2 或 br_netfilter。检查这些模块是否已加载:
       lsmod | grep overlay
       lsmod | grep br_netfilter
       

  2. 检查磁盘空间和内存使用情况: 确保有足够的磁盘空间存放Docker数据目录 /var/lib/docker,并且系统的内存资源充足。
  3. 检查Docker配置文件 /etc/docker/daemon.json 是否有误。
  4. 如果之前安装过其他版本的Docker,请确认已卸载干净,并确保没有冲突的服务或配置遗留。
    对于依赖性问题,确认containerd服务正常运行:
       systemctl status containerd
       

      5.若有必要,可以尝试重新安装Docker,并确保其依赖项正确安装和配置。

       (虽然很不想承   认但是重装确实是最快的解决办法,我哭死)

笔者最后弄了半天发现是在安装阿里云镜像时的设置docker文件时内容错误导致无法重启而引发的报错,错误格式如下

修改成以下格式

再重新加载systemd守护进程的配置文件,使其能够识别对服务(如Docker)配置所做的任何更改 ,最后再重启docker就好了

sudo systemctl daemon-reload    #重新加载
sudo systemctl restart docker   #重新启动

以上内容仅供参考,为记录笔者的学习过程,如有错误恳请指正,希望能够为大家排排雷~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值