OpenWrt-Docker icon indicating copy to clipboard operation
OpenWrt-Docker copied to clipboard

运行container后,只有lo 接口启动。

Open haha110110 opened this issue 1 year ago • 15 comments

群晖 网络环境已经按照教程配置。 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1 link/sit 0.0.0.0 brd 0.0.0.0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:11:32:e1:e9:04 brd ff:ff:ff:ff:ff:ff inet 192.168.30.85/24 brd 192.168.30.255 scope global eth1 valid_lft forever preferred_lft forever 4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 00:11:32:e1:e9:03 brd ff:ff:ff:ff:ff:ff inet 169.254.26.84/16 brd 169.254.255.255 scope global eth0 valid_lft forever preferred_lft forever 5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 02:42:2a:37:32:30 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:2aff:fe37:3230/64 scope link valid_lft forever preferred_lft forever 7: docker8a028dd@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 0a:4a:da:07:46:38 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::84a:daff:fe07:4638/64 scope link valid_lft forever preferred_lft forever 20: docker55c4183@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 86:4a:13:65:4e:7a brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::844a:13ff:fe65:4e7a/64 scope link valid_lft forever preferred_lft forever

命令运行:docker run -d --restart always --name zzopenwrt --network macnet --privileged registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:x86_64 /sbin/init

network config 如下: cat /etc/config/network

config interface 'loopback' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' option device 'lo'

config globals 'globals' option packet_steering '1'

config interface 'lan' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '192.168.1.2' option gateway '192.168.1.1' option dns '192.168.1.1' option device 'br-lan'

config device option name 'br-lan' option type 'bridge' list ports 'eth0'

config interface 'utun' option proto 'none' option ifname 'utun' option device 'utun'

但是使用Ifconfig查看: ifconfig lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

只有这个一个接口。

请问是哪里的问题?

haha110110 avatar Mar 16 '24 15:03 haha110110

1、打开网卡混杂模式,其中eth0根据ifconfig命令找到自己的本地网卡名称替换 sudo ip link set eth0 promisc on 2、创建名称为macvlan的虚拟网卡,并指定网关gateway、子网网段subnet、虚拟网卡的真实父级网卡parent(第一步中的本地网卡名称) docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet 3、查看虚拟网卡是否创建成功,成功的话能看到名称为“macnet”的虚拟网卡 docker network ls 4、拉取镜像,可以通过阿里云镜像提升镜像拉取速度 docker pull registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:latest 5、创建容器并后台运行 docker run --restart always --name openwrt -d --network macnet --privileged zzsrv/openwrt /sbin/init 6、进入容器内部环境 docker exec -it openwrt bash 7、根据自己实际情况修改网络配置,修改完成后保存配置 vi /etc/config/network 8、退出容器内部环境,在宿主机环境执行重启容器命令 docker container restart openwrt

zzsrv avatar Mar 19 '24 01:03 zzsrv

是完全按照这个步骤来的。无论是eth0 还是br-lan都不启动。另外我发现,我通过ip命令强行吧eth0启动后,访问openwrt后台,状态-》firewall无法显示。但是我换了piaoyizy/openwrt-x86的根据你上面的配置就可以。我不确定是否存在什么问题。

haha110110 avatar Mar 20 '24 11:03 haha110110

我按上面步骤的具体操作如下,可以正常访问,你可以参考下。

image image image image

zzsrv avatar Apr 03 '24 02:04 zzsrv

症状跟楼主一样 日志提示:sh: write error: I/O error,容器起来以后看着是获取到了macvlan的IP地址 运行环境是黑裙DSM7.2.1,打开了open vswitch和promisc on都不行,感觉上跟运行环境有关系

HuoDaxia avatar Apr 05 '24 11:04 HuoDaxia

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

zzsrv avatar Apr 05 '24 12:04 zzsrv

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

HuoDaxia avatar Apr 07 '24 02:04 HuoDaxia

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

那估计就是群辉系统Docker环境的问题

zzsrv avatar Apr 07 '24 06:04 zzsrv

我也是 提示日志提示:sh: write error: I/O error,有人解决了吗

sorker avatar Apr 09 '24 13:04 sorker

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

那估计就是群辉系统Docker环境的问题 隔壁家说用lean大源码编译的那个能运行起来,要不大佬也debug一下?

HuoDaxia avatar Apr 10 '24 00:04 HuoDaxia

症状跟楼主一样 日志提示:sh: write error: I/O error,容器起来以后看着是获取到了macvlan的IP地址 运行环境是黑裙DSM7.2.1,打开了open vswitch和promisc on都不行,感觉上跟运行环境有关系

特意装了个黑群晖7.2系统,复现了日志提示:sh: write error: I/O error,容器正常启动没问题,这个是openwrt镜像初始化报错了,初始化执行的命令是 /sbin/init,怀疑是群晖的docker环境有限制,这种情况要么群晖修复docker环境问题,要么上游immortalwrt做适配兼容群晖docker环境。

zzsrv avatar May 03 '24 04:05 zzsrv

dsm7.2 也是这个问题,不过运行sulinggg/openwrt:x86_64 docker版可以正常使用,但是里面的Openwrt太老了,是18.05版本。

Mrkang168 avatar Aug 10 '24 03:08 Mrkang168

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

那估计就是群辉系统Docker环境的问题 隔壁家说用lean大源码编译的那个能运行起来,要不大佬也debug一下?

大佬,麻烦提供下这个可以运行起来的连接。。。感谢

Mrkang168 avatar Aug 10 '24 03:08 Mrkang168

dsm7.2 也是这个问题,不过运行sulinggg/openwrt:x86_64 docker版可以正常使用,但是里面的Openwrt太老了,是18.05版本。

这就是个旁路由,不在乎新老吧,能运营就行,可以通过升级插件实现最新应用

zzsrv avatar Aug 10 '24 08:08 zzsrv

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

那估计就是群辉系统Docker环境的问题 隔壁家说用lean大源码编译的那个能运行起来,要不大佬也debug一下?

大佬,麻烦提供下这个可以运行起来的连接。。。感谢

可以先用上面你说的那个18.05的,本项目也是参考那个项目把OpenWrt更新到了最新版而已

zzsrv avatar Aug 10 '24 08:08 zzsrv

CPU架构是X86架构64位的吧,这个镜像不支持X86架构32位,以及ARM架构的CPU。

x86-64,CPU是5200u

那估计就是群辉系统Docker环境的问题 隔壁家说用lean大源码编译的那个能运行起来,要不大佬也debug一下?

大佬,麻烦提供下这个可以运行起来的连接。。。感谢

可以先用上面你说的那个18.05的,本项目也是参考那个项目把OpenWrt更新到了最新版而已

好的感谢

Mrkang168 avatar Aug 10 '24 12:08 Mrkang168

群晖dsm7.2系统, 遇到同样的问题,无论如何修改/etc/config/network,容器启动后用ifconfig查看网络接口,都只有lo。但sulinggg/openwrt:x86_64 docker版可以正常使用。

xqpeter avatar Dec 31 '24 01:12 xqpeter

群晖dsm7.2系统, 遇到同样的问题,无论如何修改/etc/config/network,容器启动后用ifconfig查看网络接口,都只有lo。但sulinggg/openwrt:x86_64 docker版可以正常使用。

跟你一样 DSM7.1和7.2都是同样的问题,sulinggg/openwrt:x86_64的OK!

wanglei52076 avatar Jan 03 '25 14:01 wanglei52076