前言
E-NetDev 模拟器集成系统默认安装的 Docker 引擎,镜像管理极为简便。本文介绍镜像的三种核心操作:仓库拉取、本地导入、日常管理。
第一章:查看现有镜像
1.1 列出本地镜像
docker images
示例输出:
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| xrd-control-plane | 25.4.1 | 8b2e0d6d8dbc | 4 months ago | 1.28GB |
| netdev-firefox | latest | 21bac0c7a3fc | 16 months ago | 2.72GB |
| netdev-gui-server | latest | d4db3d31bcf6 | 16 months ago | 5.23GB |
| enetdev/netdev-wireshark-jammy | latest | c38370fcec49 | 16 months ago | 2.25GB |
| netdev-wireshark | latest | c38370fcec49 | 16 months ago | 2.25GB |
| registry | 2 | 26b2eb03618e | 2 years ago | 25.4MB |
1.2 关键字段说明
| 字段 | 含义 |
|---|---|
| REPOSITORY | 镜像仓库名称(含命名空间) |
| TAG | 版本标签(latest 为最新版) |
| IMAGE ID | 镜像唯一标识(短格式 12 位) |
| CREATED | 镜像构建时间 |
| SIZE | 镜像占用空间 |
第二章:从仓库拉取镜像
2.1 默认仓库拉取
# 从 Docker Hub 拉取最新版
docker pull nginx:latest
# 拉取指定版本
docker pull xrd-control-plane:25.4.1
# 拉取带命名空间的镜像
docker pull enetdev/netdev-wireshark-jammy:latest
2.2 更换下载仓库源
配置国内镜像加速
编辑 Docker 配置文件:
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
# 重启 Docker 服务
systemctl restart docker
配置私有仓库
cat > /etc/docker/daemon.json << 'EOF'
{
"insecure-registries": ["192.168.1.100:5000"]
}
EOF
systemctl restart docker
# 从私有仓库拉取
docker pull 192.168.1.100:5000/custom-router:latest
第三章:本地导入镜像
3.1 从 tar 包导入
# 导入离线镜像包
docker load -i /path/to/image.tar
# 或从标准输入导入
cat image.tar | docker load
3.2 导出镜像备份
# 导出单个镜像
docker save -o xrd-backup.tar xrd-control-plane:25.4.1
# 导出多个镜像
docker save -o net-tools.tar netdev-firefox:latest netdev-wireshark:latest
第四章:修改镜像名称
4.1 重命名本地镜像
# 为现有镜像添加新标签
docker tag c38370fcec49 my-wireshark:v1.0
# 基于仓库名重命名
docker tag enetdev/netdev-wireshark-jammy:latest local/wireshark:custom
4.2 删除旧名称
# 删除不再需要的标签(镜像本身保留,直到最后一个标签删除)
docker rmi enetdev/netdev-wireshark-jammy:latest
4.3 批量重命名示例
# 将 netdev- 前缀改为自定义前缀
docker tag netdev-firefox:latest mylab/firefox:v1
docker tag netdev-gui-server:latest mylab/gui-server:v1
docker tag netdev-wireshark:latest mylab/wireshark:v1
# 确认新标签
docker images | grep mylab
第五章:E-NetDev 中使用 Docker 镜像
5.1 创建节点模板
mkdir -p /opt/unetlab/html/templates/docker/
模板示例(xrd.yml):
---
type: docker
name: XRD Control Plane
description: Cisco XRD Router
icon: router.png
image: xrd-control-plane:25.4.1 # 直接引用本地镜像
cpu: 2
ram: 4096
ethernet: 8
console: bash
5.2 模板配置要点
| 参数 | 说明 |
|---|---|
image | 必须与 docker images 中 REPOSITORY:TAG 完全一致 |
cpu | 建议不超过宿主机核心数 |
ram | 根据镜像需求分配(XRD 建议 4GB+) |
ethernet | 虚拟网卡数量,拓扑中可连线 |
5.3 启动验证
- Web 界面添加 Docker 节点
- 选择 XRD Control Plane
- 点击启动
- 容器自动运行,秒级就绪
第六章:镜像维护命令速查
| 操作 | 命令 |
|---|---|
| 查看镜像 | docker images |
| 拉取镜像 | docker pull 镜像名:标签 |
| 导入镜像 | docker load -i 文件.tar |
| 导出镜像 | docker save -o 文件.tar 镜像名:标签 |
| 重命名 | docker tag 镜像ID 新名称:新标签 |
| 删除镜像 | docker rmi 镜像名:标签 |
| 清理悬空 | docker image prune |
| 查看详情 | docker inspect 镜像ID |
| 查看历史 | docker history 镜像名 |
第七章:常见问题
| 问题 | 解决 |
|---|---|
| 拉取速度慢 | 配置国内镜像加速源 |
| 镜像名称冲突 | 使用 docker tag 重命名区分 |
| 磁盘空间不足 | docker system prune 清理未使用镜像 |
| 标签误删 | docker images 查看 IMAGE ID,重新 tag |
| 私有仓库连接失败 | 配置 insecure-registries 允许 HTTP |
E-NetDev 的 Docker 镜像管理遵循标准 Docker workflow:查看 → 拉取/导入 → 重命名 → 模板引用 → 启动使用。无需专门镜像目录,直接利用系统 Docker 引擎,简洁高效。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















私信站长