3.6 KiB
3.6 KiB
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.yml在SKIP_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。脚本会处理包管理器与服务启用(具体行为因发行版而异)。
推荐流程:先验证,再决定是否安装
- 在 arm 主机执行
docker info(或经 SSH 执行)。 - 若已成功(命令退出码 0):视为已满足本篇目标,无需再跑安装脚本。
- 若失败(未安装或 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 目标用户:若为非 root,需
sudo免密或已配置好非交互执行(脚本在非 root 下用sudo sh /tmp/get-docker.sh)
操作步骤(手工摘要)
- 按上节 先
docker info,失败再get-docker.sh完成 Docker。 - 启用并确认
systemctl status docker(脚本通常已处理;若未启用需按发行版处理)。 - 按需部署业务容器。
验证命令
docker info
docker version
docker ps
验收口径:以 docker info 成功为主(与自动化脚本一致)。
预期
docker info无错误,Docker daemon 可用- 容器可正常启动
下一步
05-02-onenav首页面板.md01-04-armv7-nfs服务安装.md
排障
- 先看 playbook / 脚本输出:区分「已跳过安装」与「执行了 get-docker.sh」。
- curl / TLS:arm 机需能访问
https://get.docker.com。 - sudo:非 root SSH 时若安装失败,检查
sudo -n true与免密配置。 - 集群侧(本篇不依赖 K3s):若在 verify 矩阵里同时跑 k3s 基线,仍见
kubectl相关步骤属矩阵共用断言,与 arm Docker 无直接关系。