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

docker启动失败

**加粗样式

在这里插入图片描述

**
问题很明确了:Failed at step LIMITS spawning /usr/bin/dockerd: Operation not permittedstatus=205/LIMITS。这表明 systemd 在设置资源限制时遇到了权限问题。

解决方案:

1. 移除或修复有问题的资源限制配置

# 移除我们之前创建的 override 配置
rm -f /etc/systemd/system/docker.service.d/override.conf# 重新加载 systemd
systemctl daemon-reload

2. 使用更保守的资源限制

# 创建正确的服务配置目录
mkdir -p /etc/systemd/system/docker.service.d# 创建安全的资源限制配置
cat > /etc/systemd/system/docker.service.d/limits.conf << 'EOF'
[Service]
LimitNOFILE=65536
LimitNPROC=65536
EOF# 重新加载配置
systemctl daemon-reload

3. 检查系统级限制

# 检查系统全局限制
cat /etc/security/limits.conf | grep -v "^#"# 检查 systemd 系统级限制
cat /etc/systemd/system.conf | grep -i limit
cat /etc/systemd/user.conf | grep -i limit

4. 重置 Docker 服务

# 停止 Docker
systemctl stop docker# 重置失败计数器
systemctl reset-failed docker# 清理可能的残留
pkill -f docker
pkill -f containerd# 重新启动
systemctl start docker

5. 如果仍然失败,使用最小化配置

# 完全移除自定义配置
rm -rf /etc/systemd/system/docker.service.d/# 重新加载
systemctl daemon-reload# 使用原始服务文件启动
systemctl start docker

6. 检查内核版本和兼容性

# 检查内核版本
uname -r# Docker 18.03.1 需要较新的内核,检查是否满足要求

7. 替代方案:直接修改主服务文件

如果上述方法都不行,可以临时修改主服务文件:

# 备份原服务文件
cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.backup# 编辑服务文件,注释掉有问题的 Limit 行
sed -i 's/^LimitNOFILE=/#LimitNOFILE=/g' /usr/lib/systemd/system/docker.service
sed -i 's/^LimitNPROC=/#LimitNPROC=/g' /usr/lib/systemd/system/docker.service
sed -i 's/^LimitCORE=/#LimitCORE=/g' /usr/lib/systemd/system/docker.service# 重新加载并启动
systemctl daemon-reload
systemctl start docker

8. 检查容器运行时配置

# 检查 containerd 配置
ls -la /var/run/docker/containerd/# 如果有问题,清理 containerd 相关文件
systemctl stop docker
rm -rf /var/run/docker/containerd/

9. 最终手段:重新安装 Docker

# 完全卸载
yum remove -y docker docker-common docker-selinux docker-engine# 清理所有配置和数据
rm -rf /var/lib/docker
rm -rf /etc/docker
rm -rf /etc/systemd/system/docker.service.d# 重新安装
yum install -y docker# 启动服务(不要立即修改配置)
systemctl start docker
systemctl status docker

请先执行第1步和第2步,这应该能解决权限问题。如果问题仍然存在,请分享:

  1. systemctl status docker 的输出
  2. cat /etc/systemd/system/docker.service.d/limits.conf 的内容(如果存在)
  3. uname -r 的输出

这个问题通常是由于系统对资源限制的强制策略导致的,通过使用更保守的限制值应该能够解决。

http://www.dtcms.com/a/609808.html

相关文章:

  • 卡索(CASO)汽车调查:数据智能时代,车企如何打赢一场“认知战”?
  • 数据结构之二叉树-链式结构(上)
  • 无极网站广告制作合同模板免费
  • 安全模式怎么进?【图文详解】win10/11安全模式?如何进入安全模式?
  • Docker 全面技术指南:从基础概念到企业级应用实践
  • 网站建设自评报告wordpress添加自定义导航栏
  • 开源模型应用落地-工具使用篇-Spring AI-高阶用法(九)
  • Server-Sent Events(SSE)详解:轻量级服务端推送方案
  • Ubuntu 下 PostgreSQL 安装与配置完整指南
  • UCOS-III笔记(七)
  • DDR4系列之ECC功能(六)
  • [Linux——Lesson25.线程:生产与消费者模型]
  • JavaScript while 循环
  • OceanBase分区基础知识
  • 网站如何做备份wordpress文章列分页
  • 制作一个网站需要多久wordpress地址怎么打开
  • vscode如何使用git
  • 建好网站后如何向里面加东西威海那家做网站好
  • 银河麒麟桌面操作系统的安装部署与常规使用
  • 【软考 CPU主频】外频、倍频
  • NebulaChat项目构建笔记
  • Socket:TCP/UDP通信详解
  • QT opencv实现高拍仪场景识别物体轮廓的案例详解
  • 广水住房和城乡建设部网站舟山网站建设开发
  • 深度学习打卡第R4周:LSTM-火灾温度预测
  • 最好的营销策划公司做seo网站优化价格
  • 通过Rust高性能异步网络服务器的实现看Rust语言的核心优势
  • 第36节:AI集成与3D场景中的智能NPC
  • 一个基于 LayUI + .NET 开源、轻量的医院住院管理系统
  • StarRocks 4.0:让 Apache Iceberg 数据真正 Query-Ready