视频教程 ➡️ https://www.bilibili.com/video/BV1fuc8eGEPa/
准备工作
检查系统时间是否正确。安装好docker
sudo date -s "YYYY-MM-DD HH:MM:SS"
【N1 Armbian】https://github.com/ophub/amlogic-s9xxx-armbian/releases/
sudo date -s "2025-01-14 16:01:00"
wget -qO pi.sh https://cafe.cpolar.top/wkdaily/zero3/raw/branch/main/zero3/pi.sh && chmod +x pi.sh && ./pi.sh
下载并解压rootfs.tar.gz
https://downloads.immortalwrt.org/releases/24.10.0-rc3/targets/armsr/armv8/
如果是 x86-64 则应该访问 https://downloads.immortalwrt.org/releases/24.10.0-rc3/targets/x86/64/
【如果是玩客云这类32位的】https://downloads.immortalwrt.org/releases/24.10.0-rc3/targets/armsr/armv7/
mkdir imm
cd imm
wget -O rootfs.tar.gz https://downloads.immortalwrt.org/releases/24.10.0-rc3/targets/armsr/armv8/immortalwrt-24.10.0-rc3-armsr-armv8-rootfs.tar.gz
gzip -d rootfs.tar.gz
创建一个Dockerfile文件
(粘贴下列可迅速获得带内容的Dockerfile文件 考虑到各位亲 对于vim编辑器是在不够熟练)
cat <<EOF >"Dockerfile"
FROM scratch
ADD rootfs.tar /
EOF
查看Dockerfile 具体内容
cat Dockerfile
FROM scratch
ADD rootfs.tar /
构建docker镜像
在Dockerfile所在目录执行 immortalwrt-image
是我们取的 docker镜像名称 叫什么都行。
docker build -t immortalwrt-image .
查看网卡名称
ip link show
假设网卡名称为eth0 (注意 有些设备的网卡名称为end0 要根据上述命令查看的)
假设你的主路由器网关是192.168.66.1
Docker 中创建一个 macvlan 网络
docker network create -d macvlan \
--subnet=192.168.66.0/24 \
--gateway=192.168.66.1 \
-o parent=eth0 \
macnet
不用开启混杂模式 因为macvlan
网络与 docker0
的桥接网络完全不同,它不依赖 docker0
,而是直接与宿主机的物理接口
ip link set docker0 promisc on
打印docker中的macvlan网络是否创建成功
docker network ls
macvlan 的一个特性是宿主机无法直接与容器通信。如果你的需求是让宿主机与 OpenWrt 容器通信,你需要在宿主机上创建一个虚拟接口(通常称为 macvlan 子接口),并将其加入同一 macvlan 网络。
ip link add macvlan-shim link eth0 type macvlan mode bridge
ip addr add 192.168.66.2/24 dev macvlan-shim
ip link set macvlan-shim up
注意检查上述ip地址192.168.66.2
确保它没有被其他设备占用
macvlan-shim
是虚拟接口的名称,你可以自定义。192.168.66.2/24
是给宿主机虚拟接口分配的 IP 地址,应位于192.168.66.0/24
子网内,且不冲突。
添加路由(如果需要) 如果宿主机需要通过 macvlan 网络访问容器,可以添加路由:
ip route add 192.168.66.0/24 dev macvlan-shim
dev
是 device 的缩写,用来指定路由条目所绑定的网络接口(设备)。
运行我们自己创建的docker 容器
docker run --name immortalwrt -d --network macnet --privileged immortalwrt-image:latest /sbin/init
immortalwrt
为docker容器名称
immortalwrt-image
是docker镜像名称(上述docker build 所得)
————————————————————————************************————————————————————
运行后 ,进入容器,容器内就是immortalwrt 系统啦
docker exec -it immortalwrt sh
在ImmortalWrt 命令行里设置静态ip(vim编辑器)
vi /etc/config/network
config interface 'lan'
option ifname 'eth0'
option proto 'static'
option netmask '255.255.255.0'
option ipbassign '60'
option ipaddr '192.168.66.88'
option gateway '192.168.66.1'
option dns '223.5.5.5 1.1.1.1'
为了避免大家使用vim编辑器,你可以复制如下代码到命令
cat <<EOF > /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd98:9655:39f9::/48'
config interface 'lan'
option proto 'static'
option netmask '255.255.255.0'
option ipbassign '60'
option ipaddr '192.168.66.88'
option gateway '192.168.66.1'
option dns '223.5.5.5 1.1.1.1'
option device 'eth0'
EOF
上述代码中 192.168.66.88
是我设置的ip地址,你要根据自己主路由器的ip网段来调整。
重启ImmortalWrt的网络
/etc/init.d/network restart
如果imm没有网 就在宿主机再次执行一次
ip link set macvlan-shim up
luci-i18n-filebrowser-go-zh-cn
后记
在docker 版的immortalwrt中安装一些必备插件
opkg update
opkg install luci-i18n-ttyd-zh-cn
opkg install luci-i18n-filebrowser-go-zh-cn
opkg install luci-i18n-argon-config-zh-cn
opkg install openssh-sftp-server
opkg install luci-i18n-samba4-zh-cn
安装iStore商店(ARM64 & x86-64通用)
wget -qO imm.sh https://cafe.cpolar.top/wkdaily/zero3/raw/branch/main/zero3/imm.sh && chmod +x imm.sh && ./imm.sh
安装网络向导和首页(ARM64 & x86-64通用)
is-opkg install luci-i18n-quickstart-zh-cn
评论区