Files
Deploy-Laboratory/docs/01-03-armv7-standalone-docker.md
2026-03-29 09:08:01 +08:00

3.6 KiB
Raw Blame History

01-03-armv7-standalone-Docker

armv7 节点不加入 K3s单独运行 Docker 服务NFS、OneNav、openlist 等)。

契约与真源

  • 索引ansible/files/01-03/README.md(本篇无通用 K8s 清单Docker 步骤以正文为准)。
  • 远程一键(先验后装)ansible/tools/armv7-docker-verify-install.sh(由 verify/01-03.ymlSKIP_ARMV7=0 时调用)。
  • 自动./ansible/bin/verify.sh run 01-03

TL;DR

  • 自动化验收./ansible/bin/verify.sh run 01-03
  • 关键前置arm 机网络可达;SKIP_ARMV7=0 时需配置 ARMV7_SSH(见 ansible/env/.env.verify.example
  • 成功判据(推荐):远程 docker info 成功即视为 Docker 可用;脚本策略为 先探测 docker info,成功则跳过安装,失败再安装
  • 排障:见本文「排障」

官方安装脚本Docker CE

安装脚本由 Docker, Inc. 维护,仓库说明见 docker/docker-install(即 get.docker.com / test.docker.com 所用脚本)。用途是在支持的 Linux 发行版上快速安装最新 Docker CE不建议在生产环境把「长期依赖此脚本」当作唯一部署方式;更完整发行版说明见 Docker 安装文档

在目标主机上(本机或 SSH 登录后)的典型用法与官网一致:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

非 root 用户通常需 sudo sh get-docker.sh。脚本会处理包管理器与服务启用(具体行为因发行版而异)。

推荐流程:先验证,再决定是否安装

  1. 在 arm 主机执行 docker info(或经 SSH 执行)。
  2. 若已成功(命令退出码 0视为已满足本篇目标无需再跑安装脚本。
  3. 若失败(未安装或 daemon 未起):再执行上节 get.docker.com 流程,然后再次 docker info 确认。

仓库已将上述逻辑封装为脚本(便于与 Ansible、ARMV7_SSH 一致):

# 在仓库根目录ARMV7_SSH 为一行可执行的 ssh建议 BatchMode
ARMV7_SSH='ssh -o BatchMode=yes user@arm-host' ./ansible/tools/armv7-docker-verify-install.sh
# 或
./ansible/tools/armv7-docker-verify-install.sh 'ssh -o BatchMode=yes user@arm-host'

前置条件

  • armv7 / arm32 节点网络可达(安装阶段需访问 get.docker.com
  • SSH 目标用户:若为非 rootsudo 免密或已配置好非交互执行(脚本在非 root 下用 sudo sh /tmp/get-docker.sh

操作步骤(手工摘要)

  1. 按上节 docker info,失败再 get-docker.sh 完成 Docker。
  2. 启用并确认 systemctl status docker(脚本通常已处理;若未启用需按发行版处理)。
  3. 按需部署业务容器。

验证命令

docker info
docker version
docker ps

验收口径:以 docker info 成功为主(与自动化脚本一致)。

预期

  • docker info 无错误Docker daemon 可用
  • 容器可正常启动

下一步

  • 05-02-onenav首页面板.md
  • 01-04-armv7-nfs服务安装.md

排障

  • 先看 playbook / 脚本输出:区分「已跳过安装」与「执行了 get-docker.sh」。
  • curl / TLSarm 机需能访问 https://get.docker.com
  • sudo:非 root SSH 时若安装失败,检查 sudo -n true 与免密配置。
  • 集群侧(本篇不依赖 K3s若在 verify 矩阵里同时跑 k3s 基线,仍见 kubectl 相关步骤属矩阵共用断言,与 arm Docker 无直接关系。