手里的一个N1盒子已经刷了Armbian系统,一直想用docker安装openwrt,但是flippy的镜像更新停留在两年前,没有集成主要的上网的插件,于是就去Docker仓库查询有没有合适的镜像,由于是arm架构的,适配不是很好,最终决定尝试此款镜像piaoyizy/openwrt-aarch64。
安装OpenWrt
开启网卡混杂模式
ip link set eth0 promisc on
创建网络
docker network create -d macvlan --subnet=192.168.50.0/24 --gateway=192.168.50.1 -o parent=eth0 macnet
运行容器
docker run -d --name=OpenWrt --restart always --privileged --network macnet --ip 192.168.50.100 piaoyizy/openwrt-aarch64:latest
运行容器的时候会有下面这个警告,忽略即可,没什么影响
root@armbian:~# docker run -d --name=OpenWrt --restart always --privileged --network macnet --ip 192.168.50.100 piaoyizy/openwrt-aarch64:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested a0765d1f341f29051ad6fdd4253720c5c56bca71162401f61f22817b1125a759
配置容器网络
进入容器命令行
docker exec -it xxxx bash #xxxx为容器ID前四位
编辑网络配置文件
bash-5.2# vim /etc/config/network
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.50.100'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.50.1'
option dns '192.168.50.1'
重启网络
bash-5.2# /etc/init.d/network restart
退出容器
bash-5.2# exit
实用命令
docker ps -a #查看运行的容器
docker stop 容器ID #停止正在运行的容器
docker rm 容器ID #删除容器
docker images #查看所有镜像
docker rmi 镜像ID #删除镜像
docker network ls #查看所有网络
docker network rm 网络ID #删除网络
docker exec -it xxxx bash #进入容器命令行
界面截图
写在最后
这款镜像界面简单,主要集成了几个常用的科学插件,精简了不常用的插件,作为旁路由使用完全满足自己的需求和审美。
更新
最近开始使用K大的openwrt.ai在线云编译固件,简单快捷,几分钟就可以编译完成,后续还可以自己更新和添加需要的软件,真的时非常方便。下载用于docker或者LXC的镜像文件,上传到N1。
打开网卡混杂模式
ip link set eth0 promisc on
创建网络
docker network create -d macvlan --subnet=192.168.50.0/24 --gateway=192.168.50.50 -o parent=eth0 openwrt
加载镜像,创建并启动容器
docker import kwrt-12.17.2024-armsr-armv8-box-rootfs.tar.gz kiddin9_openwrt
docker run -d --restart always --name openwrt --network openwrt --privileged k_openwrt /sbin/init
进入容器
docker exec -it openwrt sh
修改openwrt后台登录IP
sed -i 's/10.0.0.1/192.168.50.100/' /etc/config/network && /etc/init.d/network restart
如果需要openwrt的macvlan网络和宿主机通信,则需要下面的设置
ip link add macvlan1 link eth0 type macvlan mode bridge
ip addr add 192.168.50.2/24 dev macvlan1
ip link set macvlan1 up
注意macvlan1这个名称不要和创建openwrt的macvlan网络的名称一样,可以通过ifconfig查看,openwrt的macvlan名称一般是macvlan0,ip地址注意不要有冲突即可。