ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Containerlab实战系列之四:自动加载配置

2026/8/7 9:23:42 拓冰建站 浏览量
Containerlab实战系列之四:自动加载配置 Containerlab实战系列之四自动加载配置文章目录Containerlab实战系列之四自动加载配置一、问题宿主机重启容器全部退出二、重新部署配置却归零三、第一步整理设备配置文件四、第二步修改拓扑加入 startup-config五、验证重启后配置自动加载写在最后本文导读第三篇我们手动配置接口完成了实验但实验环境有个「健忘症」宿主机关机或重启后容器全部退出配置全部归零。这一篇教你用 Containerlab 的startup-config机制把设备配置固化到拓扑文件中让配置随容器启动自动加载——重启不慌配置不丢。本文目录01 问题宿主机重启容器全部退出02 重新部署配置却归零03 第一步整理设备配置文件04 第二步修改拓扑加入 startup-config05 验证重启后配置自动加载一、问题宿主机重启容器全部退出Containerlab 实验环境跑得好好的但有一天你关机下班第二天开机想继续实验却发现一切都不在了——这不是玄学而是容器的默认行为宿主机关机或重启后容器默认不会自动拉起全部处于 exited 状态。用 docker ps -a 查看所有容器包括已退出的可以看到两个实验节点都变成了 exited[rootjmz mylabs]# docker ps -a一句话记忆容器不是服务宿主机重启后Docker 默认不会自动拉起容器全部进入 exited 状态。二、重新部署配置却归零想继续实验最简单的办法是重新部署环境。Containerlab 的–reconfigure参数会强制清理旧容器并重新创建[rootjmz mylabs]# containerlab deploy -t crpd-lab.yaml --reconfigure从输出可以看到旧的 r1、r2 容器被移除环境被完整重建两个节点重新进入running状态。但是问题来了——新容器里的配置是空的。之前手动配好的接口 IP、SSH、NETCONF 等配置全部丢失一切都要从头再来。节点少还好如果拓扑里有几十台设备手动重配一遍简直是一场灾难。要解决这个问题就需要让设备配置「随容器而生」——这就是本篇的主角startup-config 自动加载。操作只需两步。三、第一步整理设备配置文件在实验目录下新建一个configs文件夹把所有设备的配置文件保存到里面。每个设备一个文件命名清晰对应节点configs 目录下存放了 r1.cfg、r2.cfg 两份配置分别对应拓扑中的 r1、r2 两个节点。查看 r1 的配置文件配置内容就是我们之前在设备上手动敲的那些命令主机名 r1、root 认证、SSH/NETCONF 服务、eth1 接口 172.16.1.1/30全部以 Junos 层级语法保存。再看 r2r2 的配置与 r1 对应host-name r2、eth1 接口 172.16.1.2/30与 r1 构成 172.16.1.0/30 的点对点互联段。四、第二步修改拓扑加入 startup-config修改 crpd-lab.yaml 拓扑文件为每个节点加入startup-config字段指向 configs 文件夹下对应的配置文件⚠️ startup-config 是什么startup-config 是 Containerlab 的标准机制节点启动时会自动把指定文件的内容加载为设备的初始配置等价于把配置文件「焊死」在拓扑里无需任何手动干预。这样配置就和拓扑文件一起纳入了版本管理——改配置、改拓扑、重建环境全部走「基础设施即代码」的流程。五、验证重启后配置自动加载重启宿主机重新生成实验拓扑。可以看到容器被重新创建并正常启动容器正常启动两个节点均处于运行状态进入 r1 验证配置是否真的自动加载了——不用敲任何配置命令直接查看设备配置[rootjmz mylabs]# docker exec -it clab-crpd-lab-r1 bash注意输出host-name r1、SSH/NETCONF 服务、eth1 接口 172.16.1.1/30全部就位——配置在容器启动时已经自动加载无需手动配置r2 同样验证[rootjmz mylabs]# docker exec -it clab-crpd-lab-r2 bash最后测试两台设备间的连通性从 r1 ping 对端接口图11r1 ping r2 连通成功ping 通网络设备成功自动加载配置实验环境从重启到可用全程零手动配置。一句话记忆配置自动加载两步走① 设备配置存到 configs 目录② 拓扑里加 startup-config 指向它。之后每次 deploy配置自动生效。写在最后这一篇我们用 startup-config 机制治好了实验环境的「健忘症」配置与拓扑绑定重启自动加载从此告别手动重配。下一篇我们进入抓包环节看看流量在容器网络里到底怎么流动。系列文章持续更新中 · 系列之五Containerlab 网络抓包敬请期待