给实验室的服务器配置 LXC 容器 联网用的是 LXC 生成的网桥 但每次开机都要执行命令把网桥和宿主机的物理接口配对才能正常用网 尝试过用 rc.local 自动运行命令 但那个时候 LXC 的网桥还没出来 脚本执行失败 求助各位大佬有没有什么办法让服务器开机并等 lxc 服务启动后再执行脚本?
给实验室的服务器配置 LXC 容器 联网用的是 LXC 生成的网桥 但每次开机都要执行命令把网桥和宿主机的物理接口配对才能正常用网 尝试过用 rc.local 自动运行命令 但那个时候 LXC 的网桥还没出来 脚本执行失败 求助各位大佬有没有什么办法让服务器开机并等 lxc 服务启动后再执行脚本?
1
mason961125 Aug 4, 2019
systemd 了解一下?
|
2
VisionTheta Aug 4, 2019
没太听懂你的问题。 [配对才能正常用网] 是说的容器才能正常上网吗?容器只要拿到了网桥分配的 IP 不就能上网了吗?需要自己设置什么
|
3
Foxkeh Aug 4, 2019 via iPhone
想简单的话 proxmox
|
4
kaneg Aug 4, 2019 via iPhone
用 LXD,更好用
|
5
defunct9 Aug 5, 2019
开 ssh,让我上去试试
|
6
defunct9 Aug 5, 2019
docker0 是个网桥
也就第一次启动容器的话,挂一下 --lxc-conf="lxc.network.link = docker0" 之后的启动都是在 /etc/rc.d/rc.local for i in `docker ps -aq`;do docker start $i;done 我们是这么干的 |
7
paultttt OP @VisionTheta 网桥是 LXC 服务启动的时候创建的 但是启动的时候是没有上网的物理接口的 必须用 brctl addif bridge eno1 给网桥添加物理接口才能上网
|
8
paultttt OP @defunct9 配置网络的时候参考的这篇博文 https://newdee.cf/posts/325daa6a/ 所以每次开机都需要等 LXC 服务启动之后手动执行 sudo brctl addif bridge eno1 和 sudo route add default gw 192.168.1.1 才能让宿主机和虚拟机都上网
|
9
defunct9 Aug 5, 2019
@imtyz001 你这个就复杂化了。--lxc-conf="lxc.network.type = veth" --lxc-conf="lxc.network.ipv4 = 192.168.86.$i/24" --lxc-conf="lxc.network.ipv4.gateway = 192.168.86.1" --lxc-conf="lxc.network.link = docker0" --lxc-conf="lxc.network.name = eth0" --lxc-conf="lxc.network.flags = up" 我们是启动的时候都指定了固定 ip,网络的参数。
所以下次启动就不会变。 |
10
VisionTheta Aug 5, 2019
@imtyz001 哦哦,因为我们用的是 LXD,`lxd init`之后,好像网桥是一直存在的。为啥不用 LXD 接口来管理呢?
|