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

83 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 无直接关系。