# 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](https://github.com/docker/docker-install)(即 **get.docker.com** / test.docker.com 所用脚本)。用途是**在支持的 Linux 发行版上快速安装最新 Docker CE**,**不建议**在生产环境把「长期依赖此脚本」当作唯一部署方式;更完整发行版说明见 [Docker 安装文档](https://docs.docker.com/engine/install/)。 在目标主机上(本机或 SSH 登录后)的典型用法与官网一致: ```bash 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` 一致): ```bash # 在仓库根目录;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`) ## 操作步骤(手工摘要) 1. 按上节 **先 `docker info`,失败再 `get-docker.sh`** 完成 Docker。 2. 启用并确认 **`systemctl status docker`**(脚本通常已处理;若未启用需按发行版处理)。 3. 按需部署业务容器。 ## 验证命令 ```bash 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 / TLS**:arm 机需能访问 `https://get.docker.com`。 - **sudo**:非 root SSH 时若安装失败,检查 `sudo -n true` 与免密配置。 - **集群侧**(本篇不依赖 K3s):若在 verify 矩阵里同时跑 k3s 基线,仍见 `kubectl` 相关步骤属矩阵共用断言,与 arm Docker 无直接关系。