夜雨聆风学习资料网

ARTICLE · 1215547

【AI工具链】跟着敲一遍①: openEuler 装 Docker 报错,照抄就跑通

【AI工具链】跟着敲一遍①: openEuler 装 Docker 报错,照抄就跑通
      
赞
Linux云计算精品课 | 每日一练 | 实用工具 |     职业发展  
                                                  感谢您抽出..阅读本文               
  系列:21 天本地 AI 工具链 · Day 1(第 1/5 篇) 前情回顾:本系列要在 4GB 虚拟机上跑通 Ollama + Open WebUI + RAG 知识库;Day 1 先把容器地基打牢。 实测环境:openEuler 22.03 SP4 / x86_64 / 虚拟机 4GB / 4 vCPU

    照着多数教程敲第一行就报错?这不是你的问题——openEuler 不在 Docker 官方支持列表。本文把这条链路拆成可直接照抄的清单,跟着敲一遍就能跑通。

今日主要内容概要:
1.环境准备;
2.症状与根因;
3.照抄清单(5 段关键命令);
4.三个关键点;
5.通关验证;
6.报错排查; 
7.实测耗时; 
8.完整脚本获取; 
9.动手练习题; 
01
环境准备
  • 系统:openEuler 22.03 SP4(x86_64 / 鲲鹏 aarch64 均可)
  • 内存:4GB(本系列真实环境)
  • 目标版本:Docker CE 26.1.3

先确认系统与架构:

[root@LinuxPythonWorkshop ~]# cat /etc/os-release | head -3 [root@LinuxPythonWorkshop ~]# uname -m 
02
症状与根因
     按多数教程的做法执行官方脚本,第一步就失败。实测遇到的是 TLS 连接被重置:
[root@LinuxPythonWorkshop ~]# curl -fsSL https://get.docker.com | sh
 curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to get.docker.com:443 

也就是说,大陆直连 get.docker.com 会先在网络层被拦下(curl: (35)),根本走不到发行版检查那一步。

即便网络通了,脚本还会读 /etc/os-release 的发行版 ID 做匹配:openEuler 的 ID 是 openeuler,不在白名单,最终仍会以 Unsupported distribution 'openeuler' 退出。

两条路都堵死,所以不要在这条路上耗:改 ID 骗脚本会引入依赖与 systemd 单元错位;正确做法是用仓库方式手动安装(国内源直连,不经 get.docker.com),并做架构自适应。

03
照抄清单(5 段关键命令)

以下命令以 root 执行,终端提示符统一为 [root@LinuxPythonWorkshop ~]#;含变量/条件判断的片段已写成可整行粘贴的形式。

① 架构适配、选仓库

[root@LinuxPythonWorkshop ~]# ARCH=$(uname -m); echo $ARCH 
[root@LinuxPythonWorkshop ~]# if [ "$ARCH" = "aarch64" ]; then REPO_URL="https://mirrors.openeuler.org/openEuler-22.03-LTS/docker-ce.repo"; else REPO_URL="https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo"; fi 
[root@LinuxPythonWorkshop ~]# curl -fsSL "$REPO_URL" -o /etc/yum.repos.d/docker-ce.repo && ls -l /etc/yum.repos.d/docker-ce.repo 

📖 初学者讲解:为什么要分架构? openEuler 仓库没有 yum-utils,不能走 yum-config-manager,所以我们直接用 curl 拉 .repo 文件。x86_64 用华为云的 CentOS 兼容源,鲲鹏(aarch64)用 openEuler 官方源——两个架构的仓库不同,不能混用。

② x86_64 换源与刷新缓存

[root@LinuxPythonWorkshop ~]# sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo 
[root@LinuxPythonWorkshop ~]# sed -i 's+\$releasever+8+' /etc/yum.repos.d/docker-ce.repo [root@LinuxPythonWorkshop ~]# dnf makecache 

📖 初学者讲解:CentOS 兼容源的 $releasever 默认会解析成 openEuler 的版本号(如 22.03),仓库里没有对应目录,必须替换成 8。这一步不做,dnf 会报找不到 repodata。本段只在 x86_64 执行,鲲鹏跳过。

③ 安装 Docker CE

[root@LinuxPythonWorkshop ~]# dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 已装过时,用下面这条复核版本 [root@LinuxPythonWorkshop ~]# rpm -qa | grep -E 'docker-ce|containerd|docker-compose' 

📖 初学者讲解:必须一起装 containerd.io 与 docker-compose-plugin。只装 docker-ce 会缺容器运行时,docker run 直接失败。实测装完后 docker-ce、docker-ce-cli、containerd.io、docker-compose-plugin 均在 26.1.3 版本线。

④ 写 daemon.json(镜像加速)

[root@LinuxPythonWorkshop ~]# mkdir -p /etc/docker [root@LinuxPythonWorkshop ~]# vi /etc/docker/daemon.json 

写入以下内容(严格 JSON,末尾无逗号):

{   "registry-mirrors": [     "https://docker.m.daocloud.io",     "https://docker.1panel.live",     "https://docker.1ms.run"   ],   "storage-driver": "overlay2",   "exec-opts": ["native.cgroupdriver=systemd"] } 

📖 初学者讲解:大陆不配镜像源,docker pull 基本拉不动。daemon.json 是严格 JSON,末尾不能有多余逗号,否则 Docker 起不来且报错不直观。鲲鹏还要加一行 "storage-opts": ["overlay2.override_kernel_check=true"]。

⑤ 启动、免 sudo 与验证

[root@LinuxPythonWorkshop ~]# systemctl daemon-reload [root@LinuxPythonWorkshop ~]# systemctl enable --now docker [root@LinuxPythonWorkshop ~]# usermod -aG docker root 
[root@LinuxPythonWorkshop ~]# docker --version [root@LinuxPythonWorkshop ~]# docker run --rm hello-world 

最后确认镜像加速器已生效:

[root@LinuxPythonWorkshop ~]# docker info 2>/dev/null | grep -A3 "Registry Mirrors" 

📖 初学者讲解:usermod -aG docker 之后要注销重登(或 newgrp docker)才生效——组权限在登录时加载,当前 shell 不会自动更新。

04
三个关键点
关键点
要点
不做会怎样
仓库源
x86_64 用华为云兼容源,releasever 改 8
dnf
 找不到 repodata
daemon.json
严格 JSON,无多余逗号
Docker 起不来,报错不直观
镜像加速
配 daocloud + 1panel + 1ms
docker pull
 龟速或失败
05
通关验证
  • docker --version
    正常(实测 26.1.3)
  • docker run hello-world
     输出 Hello from Docker!
  • docker info
     里 Registry Mirrors 列出镜像源
06
报错排查
    报错
    根因
    修正
    curl: (35) Connection reset
    大陆直连 get.docker.com 被 TLS 重置
    改用国内仓库源,不走官方脚本
    Unsupported distribution
    openEuler 不在白名单
    改仓库方式(本文清单)
    Unable to find a match: yum-utils
    openEuler 无此包
    去掉 yum-utils,直接下载 .repo
    Docker 起不来、无镜像源
    daemon.json 多逗号
    修正 JSON 后重启 Docker
    鲲鹏 overlay2 报错
    缺内核检查开关
    加 overlay2.override_kernel_check=true
    permission denied
    未重登
    注销重登或 newgrp docker
    07
    实测耗时

    dnf update 是最大耗时项:约 800MB / 578 个包,10-30 分钟。包计数从 291 跳到 578 属正常;Docker 本体安装 + 验证通常 5 分钟内。

    08
    完整脚本获取

    本文正文为分段照抄版;完整一键脚本(91 行,含颜色/日志函数与完整 daemon.json)已上传网盘,与后续 4 篇共用同一入口:

    • 链接:https://pan.baidu.com/netdisk/share?surl=BOHEWiHa8UQXHR2g6RpJOg
    • 提取码:ai25
    09
    动手练习题

    一、选择题(5 题)

    1. openEuler 执行官方 install.sh 报 Unsupported distribution,最稳妥的处置是?

    A. 改 /etc/os-release 把 ID 改成 centos 

    B. 用仓库方式手动配置 docker-ce.repo 再 dnf install

    C. 换成 podman 

    D. 下载 docker 二进制丢进 /usr/bin

    2. daemon.json 末尾多写一个逗号,最可能的结果是?

    A. Docker 自动忽略 

    B. 镜像加速失效但 Docker 正常 

    C. Docker 服务起不来 

    D. 只是警告,无影响

    3. registry-mirrors 的主要作用是?

    A. 加速 docker.io 镜像拉取 

    B. 加速 ghcr.io 镜像拉取 

    C. 提供容器 DNS 解析 

    D. 限制镜像大小 

    4. x86_64 上脚本把 $releasever 替换成 8,原因是?

    A. 降低内核版本 

    B. 兼容 openEuler 22.03 

    C. 指定 Docker 版本 

    D. 匹配华为云 CentOS 兼容源目录

    5. 执行 usermod -aG docker $USER 后仍报 permission denied,最可能的原因是?

    A. Docker 未安装 

    B. 镜像未拉取 

    C. 当前 shell 未重新加载组权限 

    D. 端口被占用 

    二、填空题(2 题)

    1. openEuler 22.03 仓库中没有 yum-utils,脚本改用 __ 直接下载 docker-ce.repo 文件。

    2. 鲲鹏(aarch64)需要在 daemon.json 中加 __ 才能避免 overlay2 启动报错。

       🎁 答对粉丝福利:

        将答案按顺序发至评论区, 全部答对的前50位粉丝,将获得:  

       ✅ 赠送完整的《21天工具链接实验手册 》

    【云计算精品课程】跟着敲一遍④ :运维面试:HR 怎么筛简历,面试官怎么问你

    下篇内容预告;
    1.地基有了,Day 2 上模型:Ollama 的二进制安装、国内镜像加速,以及 4GB 内存跑 7B 到底什么体验——那一段会解释为什么很多人"装上了却用不了"。🚀  
    👍 觉得这篇文章有帮助?点赞 + 在看 + 分享,是对我最大的支持!
    💬 有疑问?评论区留言,我会一一回复~

    #openEuler #Docker #容器 #Linux运维 #AI工具链

     本文由LinuxPythonWorkshop(清风)独家发布,请在获得账号管理员授权后转载。
    策划制作
      策划:清风    丨   监制:明月
      编辑:啸啸    丨   图片来源:稿定设计及网络,侵删

    相关学习资料