3. DPU上运行Linux容器
任务目标
在BlueField-3 DPU的ARM子系统(即BlueField主机)上运行一个Docker容器,验证容器能够正常启动、网络连通,并执行基本命令。
环境与依赖
- BlueField-3 DPU已安装并启动,运行DOCA 2.x或更高版本固件/驱动。
- DPU的ARM子系统(BlueField主机)可通过
ssh登录(默认用户root或ubuntu)。 - ARM子系统已安装Docker Engine(若未安装,参考下方安装命令)。
实现步骤
1. 登录DPU的ARM子系统
通过外部主机使用SSH登录DPU的ARM子系统。假设DPU的带外管理IP为192.168.100.10:
ssh root@192.168.100.10
2. 确认Docker已安装
docker --version
若未安装,执行以下命令安装Docker(适用于Ubuntu/Debian ARM64):
apt-get update
apt-get install -y docker.io
systemctl enable --now docker
3. 运行测试容器
拉取一个轻量ARM64镜像并运行容器,验证基本功能与网络:
docker run -d --name test-alpine --network bridge alpine:3.19 sleep 3600
该命令在后台启动一个基于alpine:3.19的容器,保持运行1小时,使用默认bridge网络。
4. 验证容器状态与网络
docker ps --filter name=test-alpine
docker exec test-alpine ip addr show eth0
docker exec test-alpine ping -c 3 8.8.8.8
5. 清理测试容器
docker rm -f test-alpine
验证方法与判定标准
- 容器状态:
docker ps输出中test-alpine状态为Up。 - 网络接口:
docker exec test-alpine ip addr show eth0应显示一个eth0接口,且IP地址为172.17.0.x网段(bridge网络默认分配)。 - 网络连通性:
ping -c 3 8.8.8.8应返回0%丢包(若DPU的ARM子系统已配置外部网络路由)。若无法访问外网,可改为ping同一bridge网络内另一个容器的IP,或ping宿主机(DPU ARM)的IP。 - 基本功能:容器内可正常执行
echo、cat /etc/os-release等基础命令,说明容器运行时正常。
常见问题
- 镜像拉取失败:若ARM子系统无法访问Docker Hub,需配置镜像加速器或使用离线导入的镜像。
- 网络不通:检查DPU的ARM子系统上行链路(如
eth0或enp3s0f0)是否已配置IP和路由。容器默认通过NAT访问外部网络,需确保宿主机IP转发已开启:sysctl net.ipv4.ip_forward=1。 - 权限问题:若使用非root用户登录,需将用户加入
docker组或使用sudo执行docker命令。
以上步骤在BlueField-3 DPU的ARM子系统上完成了Docker容器的运行、网络验证与清理,确认容器基本功能正常。