个人开发测试

  • 关于
  • 历史项目
  • 游戏开发
    • 一些轮子
    • Unity
    • UnReal
    • Godot
    • 常用框架
  • 游戏设计
    • 游戏品类研究
    • 游戏心理学
    • 游戏杂谈
  • 计算机科学
    • 算法、数据结构
    • 图形学
    • 网络
    • 计算机语言
  • 留言板
  • 推荐
游戏开发/个人感悟/一些废话
  1. 首页
  2. 计算机科学
  3. 正文

【计算机科学】【Docker】【LEDE】unix下安装docker并挂载openwrt全流程全踩坑

2022年4月28日 3390点热度 0人点赞 0条评论

无论是32位还是64位CPU都可以通用本教程

首先需要有类unix系统底包

此处以armbian为例,其中相关的命令请转为对应平台

安装docker

apt update

apt install docker.io

docker info

在docker中安装portainer面板实现docker的GUI操作,绑定端口9000

docker run -d \

 -p 8000:8000 \

 -p 9000:9000 \

 -v /var/run/docker.sock:/var/run/docker.sock \

 -v /data/docker/portainer/data:/data \--name=portainer \

 --restart=always \

portainer/portainer-ce

安装openwrt(此处可在portainer中可视化完成)

docker pull virking/openwrt:20.04

ip link set eth0 promisc on

docker network create -d macvlan --subnet=192.168.123.0/24 --gateway=192.168.123.1 -o parent=eth0 macnet

此处进行了三个操作

1.安装openwrt源

--32位推荐virking/openwrt:20.04 后面flag可以为last

--64位推荐sulinggg/openwrt - Docker Image | Docker Hub

2.打开网卡混杂模式

3.新建docker网络

--其中subnet和gateway要根据实际部署所在网段进行调整,我们家为192.168.123.0

创建并启动openwrt容器(此处可在portainer中可视化完成)

docker run -i -t -d --name=openwrt --restart=always --network=macnet --privileged=true virking/openwrt:20.04 /sbin/init

其中:

--restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;

--name openwrt参数定义了容器的名称;

-d参数定义使容器运行在 Daemon 模式;

--network macnet参数定义将容器加入 maxnet网络;

--privileged 参数定义容器运行在特权模式下;

virking/openwrt:20.04为 Docker 镜像名

/sbin/init定义容器启动后执行的命令。

启动容器后,我们可以使用 docker ps -a命令查看当前运行的容器:

若容器运行信息STATUS列为 UP状态,则说明容器运行正常。

进入容器并修改相关参数

docker exec -it openwrt bash

其中:

openwrt为容器名称;

bash为进入容器后执行的命令。

执行此命令后我们便进入 OpenWrt 的命令行界面,首先,我们需要编辑 OpenWrt 的网络配置文件:

vi /etc/config/network

我们需要更改 Lan 口设置(此处可以在可视化界面调整):

config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.123.100'#指定的静态ip
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.123.1'#主路由IP
option broadcast '192.168.123.255'
option dns '192.168.123.1'#主路由IP

**我们需要更改/检查 DNS设置(此处需要使用VIM文本编辑器):

cat /etc/resolv.conf

如namesever的ip不存在局域网网段 而是在docker brige网段内 需要手动修改为主路由IP或第三方DNS地址。

否则会存在docker内IP可以ping通但ping不到网址的情况。

openwrt 插件

常规设置 · vernesong/OpenClash Wiki (github.com)

许迎果 第214期 openwrt十类常用插件大盘点|服务器|浏览器|路由_网易订阅 (163.com)

旁路由配置核心

  • 旁路由设置静态IP
  • 主路由DHCP设置中设置网关和DNS为旁路由静态IP
  • 旁路由DNS解析指向主路由

参考资料:

群晖NAS安装openwrt用作旁路由_Flying_x的博客-程序员ITS401_nas 旁路由 - 程序员ITS401

(102条消息) Docker容器内部能ping通ip,ping不通域名(Name or service not known)解决方法_丶聆风的博客-CSDN博客_容器ip不通

docker中执行sed: can't move '/etc/resolv.conf73UqmG' to '/etc/resolv.conf': Device or resource busy错误的处理原因及方式 - xinkun - 博客园 (cnblogs.com)

已知问题 · Issue #12 · SuLingGG/OpenWrt-Docker (github.com)

sulinggg/openwrt - Docker Image | Docker Hub

virking/openwrt - Docker Image | Docker Hub

在Docker 中运行 OpenWrt 旁路网关 | 美丽应用 (mlapp.cn)

(102条消息) Docker daemon及容器实例的DNS配置详解_易生一世的博客-CSDN博客_daemon.json dns

玩客云可以安装armbian与openwrt,-个人笔记-天河 BBS (showj.top)

标签: unix
最后更新:2022年5月26日

可以吃的妙脆角

平平无奇的游戏开发者

点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档
  • 2024 年 2 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 1 月
  • 2022 年 11 月
  • 2022 年 9 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 4 月
  • 2020 年 11 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 4 月
分类
  • CSharp
  • Lua
  • NAS
  • Unity
  • 一些轮子
  • 历史项目
  • 尚未分类
  • 常用框架
  • 杂
  • 游戏品类研究
  • 游戏开发
  • 游戏杂谈
  • 游戏设计
  • 计算机科学
已阻挡的垃圾评论
3条垃圾评论已被Akismet阻挡

COPYRIGHT © 2022 XuYue. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

京ICP备2022001429号-1