目 录CONTENT

文章目录

如何制作docker版Immortalwrt

悟空的日常
2025-01-15 / 1 评论 / 0 点赞 / 346 阅读 / 9308 字

视频教程 ➡️ 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

devdevice 的缩写,用来指定路由条目所绑定的网络接口(设备)。

运行我们自己创建的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

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区