一、准备工作

1、下载源码
git clone https://github.com/openwrt/openwrt.git

2、安装依赖包

apt-get install gcc binutils bzip2 flex python perl make find grep diff unzip gawk getopt subversion libz-dev libc

3、安装源码包
./scripts/feeds install -a
./scripts/feeds install -a

二、编译openwrt

1、编译配置
make menuconfig

target system选项选择QEMU ARM Virtual Machine

Subtarget 选项选择ARMv8 multiplatform

退出配置页面

其他选项可以默认

2、编译固件
make V=s -j4

三、制作镜像

1、复制固件到N1盒子

在bin/targets/armvirt/64/openwrt-armvirt-64-default-rootfs.tar.gz

2、在N1盒子上执行
docker import openwrt-armvirt-64-default-rootfs.tar.gz  openwrt:18.06.5

3、查看镜像
docker images

4、运行镜像
(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 随机mac
    source /usr/lib/armbian/armbian-common
    get_random_mac
    docker 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 eth0

auto 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.10
        broadcast 192.168.1.255
        netmask 255.255.255.0
        #  主路由的ip地址
        gateway 192.168.1.1
        dns-nameservers 192.168.1.1
        dns-nameservers 114.114.114.114

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐