前期准备
输入飞牛NAS地址IP进入飞牛NAS
Docker - 镜像仓库 - 搜索 iStoreOS,选择 soroke/istoreos 下载
选择标签 - 内容 - 默认 - 确定,本地镜像就开始下载了
点击飞牛NAS 设置 - SSH - 开启
下载并使用SSH工具 Termius 工具
点击NEW HOST 填写 飞牛NAS IP地址,管理员账户和管理员密码,点击Connect 连接成功
部署命令
依次填写下方命令
1. 超级用户权限
sudo -i
2. 查看网口名称
ifconfig
3. 创建macvlan虚拟网卡
ip link set enp1s0 promisc on
网卡混杂模式(Promiscuous Mode)是一种特殊的网络工作模式,允许网卡接收所有经过它的数据包(包括目标地址非本机的流量)。
docker network create -d macvlan --subnet=192.168.x.0/24 --gateway=192.168.x.1 -o parent=网卡名 自定义macvlan名
网卡名:本机的名称(例如enp1s0) 自定义 macvlan 名:istoreosnet
4. 查看虚拟网卡是否创建成功
5. 创建容器并连接到macvlan网络
docker run --restart always --name 自定义容器名 -d --network macvlan名称 --privileged 镜像名 /sbin/init
自定义容器名:istoreos macvlan名称:macvlan 镜像名:在飞牛NAS - Docker - 容器 - 添加容器 - 选择镜像 - 找到创建的镜像点击复制
openwrt:registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt
istoreos:soroke/istoreos
6. 进入容器内部
docker exec -it 容器名 bash
容器名:istoreos
7. 修改lan口ip
vi /etc/config/network
点击键盘 "i" 进行修改调整 IP地址,修改完成后按ESC键,输入 :wq 回车保存退出
重启
先关机,等待几秒再启动
配置iStore系统
进入 iStoreOS 系统,输入密码
password
网络向导 - 配置为旁路由 - 下一步 - 填写后台IP地址 - 网关地址 保存
网络 接口 Lan 编辑 - DHCP服务器 - 高级设置 - 动态DHCP取消勾选 - 保存
谁提供dhcp服务器,谁作为网关
解决宿主机与容器通信问题
使用macvlan网络模式时,默认情况下宿主机是无法与容器直接通信的。这是因为macvlan在设计时出于安全考虑禁止了宿主机与容器的直接通信。但可以通过以下步骤解决这个问题:
原理
在宿主机上创建另一个macvlan接口,并修改路由,使数据经由该macvlan传输到容器内的macvlan,从而实现宿主机与容器的通信。
具体步骤
假设网络环境为:
网段:192.168.x.0/24
容器IP:192.168.x.100(请替换为你的容器实际IP)
网卡名称:enp1s0(请替换为你的实际网卡名称)
在宿主机上执行以下命令:
# 创建新的macvlan接口(名称mynet可自定义,但不要与容器的macvlan重名)
ip link add mynet link enp1s0 type macvlan mode bridge
# 为接口分配IP并启用
ip addr add 192.168.x.10/24 dev mynet
ip link set mynet up
# 修改路由,使宿主机到容器IP的通信经由mynet进行
ip route add 192.168.x.100 dev mynet
测试连通性:
ping 192.168.x.100
持久化配置
上述命令在系统重启后会失效。为使配置持久化,可以将这些命令添加到启动脚本中,例如/etc/rc.local
或创建systemd服务。
评论区