一、准备工作

1、下载源码
git clone https://github.com/openwrt/openwrt.git2、安装依赖包apt-get install gcc binutils bzip2 flex python perl make find grep diff unzip gawk getopt subversion libz-dev libc3、安装源码包
./scripts/feeds install -a
./scripts/feeds install -a

二、编译openwrt

1、编译配置
make menuconfigtarget system选项选择QEMU ARM Virtual MachineSubtarget 选项选择ARMv8 multiplatform退出配置页面其他选项可以默认2、编译固件
make V=s -j4

三、制作镜像

1、复制固件到N1盒子在bin/targets/armvirt/64/openwrt-armvirt-64-default-rootfs.tar.gz2、在N1盒子上执行
docker import openwrt-armvirt-64-default-rootfs.tar.gz  openwrt:18.06.53、查看镜像
docker images4、运行镜像
(1)、打开网卡混杂模式
sudo ip link set eth0 promisc on(2)、设置网络[根据个人情况]
docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=eth0 macnet(3)、运行镜像
docker run --restart always --name openwrt -d --network macnet --privileged openwrt:18.06.5 /sbin/init(4)、设置openwrt 随机macsource /usr/lib/armbian/armbian-commonget_random_macdocker run --restart always --mac-address $MACADDR --name openwrt -d --network macnet --privileged openwrt:18.06.5 /sbin/init
5、进入openwrt环境
docker exec -it 容器Id /bin/sh

四、openwrt设置静态地址

vi /etc/config/network修改lan口,(根据自己实际情况,我这里是1网段)
config interface 'lan'option type 'bridge'option ifname 'eth0'option proto 'static'option ipaddr '192.168.1.168'option netmask '255.255.255.0'option ip6assign '60'option gateway '192.168.1.1'option broadcast '192.168.1.255'option dns '192.168.1.1'

五、给armbian设置静态地址

cd /etc/network/interfaces.d touch eth0auto eth0
# 设置静态IP地址
iface eth0 inet static# 自动开启网卡混杂模式up ip link set $IFACE promisc on # 给eth0设置固定的mac地址,自己编一个hwaddress ether 01:02:03:04:05:06# armbian的ip地址address 192.168.1.10broadcast 192.168.1.255netmask 255.255.255.0#  主路由的ip地址gateway 192.168.1.1dns-nameservers 192.168.1.1dns-nameservers 114.114.114.114

六、至此,制作openwrt docker镜像完!