Skip to main content

如何配置 Docker 模板

Docker 是 GNS3 中基于容器技术的节点类型,与 QEMU/Dynamips 等虚拟机不同,它共享宿主机内核,启动速度极快。

创建模板​

以下以 Ubuntu 容器为例,介绍如何创建 Docker 模板。

  1. 点击"Docker"选项进入。 进入 Docker

  2. 点击右上角的 + 号按钮添加新模板。 点击添加

  3. 按照引导步骤依次操作,点击"Docker Virtual Machine"。 向导开始

  4. 如果镜像已存在,点选"Existing image"并在列表中选择,然后点击"Container name"。 选择已有镜像

  5. 如果镜像不存在,点选"New image",在"Image name"中输入镜像名称(如 ubuntu:latest),然后点击"Container name"。 输入新镜像

  6. 在"Container name"中输入容器模板名称,然后点击"Network adapters"。 容器名称

  7. 在"Network adapters"中配置接口数量,然后点击"Start command"。 网络适配器

  8. 在"Start command"中输入启动参数,然后点击"Console type"。 启动命令

  9. 根据容器类型选择 console type(telnet/vnc 等),然后点击"Auxiliary console type"。 控制台类型

  10. "Auxiliary console type"选择"None",然后点击"Environment"。 辅助控制台

  11. 在"Environment"中配置容器的环境变量,然后点击"Add Template"完成创建。 环境变量

  12. 创建完成后,在列表中可以看到新模板。 创建完成

  13. 点击右侧的三个点按钮,可以选择删除(Delete)、复制(Copy)或编辑(Edit)。 操作菜单

与其他节点类型的区别​

特性DockerQEMUDynamipsVPCS
技术类型容器(共享内核)全虚拟化硬件模拟模拟 PC
启动速度极快(秒级)慢(分钟级)慢快
镜像大小小(分层存储)大(几 GB)中等极小
网卡数量0-1000-275依赖平台1
控制台类型8 种7 种telnet/sshtelnet
内存限制可选(0=无限制)必填必填无
CPU 限制可选(支持小数)必填必填无

Docker 模板配置详解​

通用设置(General settings)​

字段类型单位用途
Template name文本—模板名称,在列表中显示
Default name format文本—实例自动命名格式,如 {name}-{0}
Image文本—Docker 镜像名称(如 ubuntu:latest)
Category下拉选择—设备分类
Symbol文本 + 按钮—拓扑图图标
TagsChip 输入框—标签,用于分类/筛选
Adapters数值个网络适配器数量,默认为 0
Base MAC文本—基 MAC 地址,留空自动生成
Maximum memory数值MB内存上限,0=无限制
Maximum CPUs数值个CPU 核心数上限,0=无限制
Console type下拉选择—telnet / ssh / vnc / http / https / none
Auxiliary console type下拉选择—辅助控制台类型
VNC console resolution下拉选择—VNC 分辨率,仅在 console_type 为 vnc 时有效
HTTP port in the container数值—容器内 HTTP 端口号
HTTP path文本—HTTP 路径,如 /、/gui
Auto start console复选框—启用后自动打开控制台
Edit network configuration按钮—自定义网卡 MAC 地址

通用设置

自定义网络配置​

点击 "Edit network configuration" 打开对话框,每行一个网卡:

列名字段类型用途
Adapter只读标签网卡编号,自动递增
Port name只读文本端口名称,固定为 eth0、eth1...(Docker 约定)
MAC address文本输入MAC 地址,可自定义,留空自动生成
操作删除按钮删除此网卡

自定义网络

高级设置(Advanced)​

Start command​

字段类型用途
Start command文本域容器启动命令,覆盖 Docker 镜像的默认 CMD

Environment​

字段类型用途
Environment文本域环境变量,每行一个,格式 KEY=VALUE。支持模板变量:%vm-name%、%vm-id%、%project-id%、%project-path%

示例:

DB_HOST=192.168.1.10
DB_PORT=5432
API_KEY=%vm-id%
PROJECT=%project-id%

Extra volumes​

字段类型用途
Extra volumes文本域额外挂载卷,每行一个容器内目录路径,容器删除后数据不丢失

示例:

/data
/config
/var/log/app

Extra hosts​

字段类型用途
Extra hosts文本域额外主机名映射,每行一个,格式 hostname:IP

示例:

gns3.local:192.168.100.10
database.internal:10.0.0.5
api.example.com:172.16.0.100

高级设置