83 lines
3.6 KiB
Markdown
83 lines
3.6 KiB
Markdown
# 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 无直接关系。
|