E-NetDev 模拟器:Docker 镜像管理指南

前言

E-NetDev 模拟器集成系统默认安装的 Docker 引擎,镜像管理极为简便。本文介绍镜像的三种核心操作:仓库拉取、本地导入、日常管理。


第一章:查看现有镜像

1.1 列出本地镜像

docker images

示例输出:

REPOSITORYTAGIMAGE IDCREATEDSIZE
xrd-control-plane25.4.18b2e0d6d8dbc4 months ago1.28GB
netdev-firefoxlatest21bac0c7a3fc16 months ago2.72GB
netdev-gui-serverlatestd4db3d31bcf616 months ago5.23GB
enetdev/netdev-wireshark-jammylatestc38370fcec4916 months ago2.25GB
netdev-wiresharklatestc38370fcec4916 months ago2.25GB
registry226b2eb03618e2 years ago25.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 imagesREPOSITORY:TAG 完全一致
cpu建议不超过宿主机核心数
ram根据镜像需求分配(XRD 建议 4GB+)
ethernet虚拟网卡数量,拓扑中可连线

5.3 启动验证

  1. Web 界面添加 Docker 节点
  2. 选择 XRD Control Plane
  3. 点击启动
  4. 容器自动运行,秒级就绪

第六章:镜像维护命令速查

操作命令
查看镜像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
喜欢就支持一下吧
点赞14 分享