OpenWRT 中创建docker Openwrt和其他宿主机中的docker容器通信

2023-05-16

这里写自定义目录标题

  • OpenWRT 中使用创建docker Openwrt和其他宿主机中的docker容器通信
    • 网络拓扑
    • 一、准备
      • 1、openwrt镜像,
      • 2、安装pve
    • 二、PVE配置
      • 1、网络配置
      • 2、创建docker network
    • 三、OpenWRT配置
      • 1、登录openwrt,在网络-->接口-->设备,添加设备配置
      • 2、配置接口ip
      • 3、创建docker network
      • 4、创建docker OpenWRT
      • 5、修改OpenWRT的配置
        • 5.1、修改docker openwrt的lan口ip
        • 5.2、登录docker op190 配置网络和安装软件
        • 5.3、安装必要的软件
    • 四、测试
    • 五、最终结果

OpenWRT 中使用创建docker Openwrt和其他宿主机中的docker容器通信

网络拓扑

首先网络得支持多拨,否则没有意义,之所以这么折腾,是因为直接OpenWRT多拨的情况下,网心云从原先的映射公网型变成全锥型
在这里插入图片描述

openwrt主路由,
cpu:Intel® Celeron® CPU J1900 @ 1.99GHz
内存:4G
网口:6口intel I211 千兆网口
原先计划是PVE,然后跑4个OpenWRT虚拟机,然而带不动,基本一天死机一回

后面改成现在这种模式:
局域网上网只用了0口和1口,有多余的网口用于docker openwrt
pve虚拟机跑docker 网心云
局域网划分了4个网段
192.168.1.0/25 网关192.168.1.126
192.168.1.160/27 网关192.168.1.190
192.168.1.192/27 网关192.168.1.222
192.168.1.224/27 网关192.168.1.254

一、准备

1、openwrt镜像,

可以根据下面这个去扩容,原始镜像的软件空间太小了,版本自己下载最新的
https://blog.csdn.net/yuanmingming521/article/details/126741073

2、安装pve

网上超多教程,这里就不写了
替换国内的源

 vi /etc/apt/sources.list
 #把其余的注释掉
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

删除PVE企业源

vi /etc/apt/sources.list.d/pve-enterprise.list
#注释掉
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise

安装docker

apt update
apt install docker.io

二、PVE配置

1、网络配置

登录pve
https://ip:8006
创建linux bridge
在这里插入图片描述

2、创建docker network

登录PVE后台,创建macvlan

docker network create -d macvlan --subnet=192.168.1.160/27 --gateway=192.168.1.190 -o parent=vmbr1 -o macvlan_mode=bridge net190


root@:~# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
110ea0f854dc   bridge    bridge    local
74e0f19ab3a1   host      host      local
dc7b6ee9f6c1   net190    macvlan   local
3078d2dcba7c   net222    macvlan   local
0cf90f04cffa   net254    macvlan   local
4de979658c7e   netlan    macvlan   local
3f03cc1590b4   netwan    macvlan   local
d861ece9492e   none      null      local
root@:~# 

三、OpenWRT配置

1、登录openwrt,在网络–>接口–>设备,添加设备配置

设备类型:选择maclan
基设备:选择对应的物理网口
模式:桥接(允许mac vlan间直接通信)
其余默认
在这里插入图片描述

2、配置接口ip

网络–>接口–>添加新接口
名称:br2(方便记忆,第二个网口)
协议:静态IP或者不配置协议,我这里选择的静态ip
注意地址不要配置成网段的第一个可用ip,包括后面建立容器也一样,不要使用第一个可用的ip
设备:选择对应的接口
在这里插入图片描述

点击创建接口,配置相应网段的空闲ip,wan口的macvlan 不配置ip

在这里插入图片描述
最后保存并应用

根据上面的步骤创建其余的接口

3、创建docker network

登录openwrt后台,创建网络

docker network create -d macvlan --subnet=192.168.1.160/27 --gateway=192.168.1.190 -o parent=eth2mac0 -o macvlan_mode=bridge net190
#下面这个网段随便配置的
docker network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.254 -o parent=eth1mac0 -o macvlan_mode=bridge netwan

eth2mac0 这个是连接pve的网口
eth1mac0 这是连接光猫的网口

4、创建docker OpenWRT

docker run --name op190 -d --network net190  --restart=always --privileged garethwang/openwrt-22.03.2-x86-64  /sbin/init

docker network connect netwan op190

5、修改OpenWRT的配置

5.1、修改docker openwrt的lan口ip

docker exec -it op190 sh

vi /etc/config/network

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.190' 
        option netmask '255.255.255.224'
        option ip6assign '60'

ctrl+d 

docker restart op190

5.2、登录docker op190 配置网络和安装软件

docker和宿主机是可以ping通的,但是电脑和docker在不同网段,ping不通,用xshell或者securecrt 登录到openwrt主路由后,再跳转,
在这里插入图片描述
网页输入 127.0.0.1:2555,密码是password
在这里插入图片描述
配置pppoe拨号上网
在这里插入图片描述

5.3、安装必要的软件

修改opkg 源
在这里插入图片描述
将上面位置的配置替换成如下的配置

src/gz openwrt_core https://mirrors.aliyun.com//openwrt/releases/22.03.2/targets/x86/64/packages/
src/gz openwrt_base  https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/base/  
src/gz openwrt_luci https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/luci/
src/gz openwrt_packages https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/packages/
src/gz openwrt_routing https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/routing/
src/gz openwrt_telephony https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/telephony

然后安装luci-i18n-base-zh-cn和luci-i18n-upnp-zh-cn,其他也不需要了

四、测试

在pve主机中创建容器

docker run -dit --name=wxy162 --net=net190 --ip=192.168.1.162 --privileged=true --tmpfs /run --tmpfs /tmp -v /mnt/wxy4/wxy4:/storage:rw     registry.hub.docker.com/onething1/wxedge

进入docker openwrt 去pingpve中的容器地址

root@OPHOME:~# docker exec -it op190 sh


BusyBox v1.35.0 (2022-10-14 22:44:41 UTC) built-in shell (ash)

/ # ping 192.168.1.162
PING 192.168.1.162 (192.168.20.162): 56 data bytes
64 bytes from 192.168.1.162: seq=0 ttl=64 time=0.571 ms
64 bytes from 192.168.1.162: seq=1 ttl=64 time=0.450 ms
64 bytes from 192.168.1.162: seq=2 ttl=64 time=0.449 ms
64 bytes from 192.168.1.162: seq=3 ttl=64 time=0.680 ms
^C
--- 192.168.1.162 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.449/0.537/0.680 ms
/ # 

五、最终结果

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenWRT 中创建docker Openwrt和其他宿主机中的docker容器通信 的相关文章

  • Deepin下apt安装node.js和npm

    写在前面 折腾了一下午 xff0c 发现怎么装node js和npm都不能安装上 xff0c 也不能使用命令 xff0c 开始以为是官方源版本太老 xff0c 后来换了阿里源也是一样 root 64 baike PC home baike
  • windows下,vscode配合pyenv-win使用python虚拟环境

    vscode安装python插件 安装pyenv win xff0c 推荐使用chocolatey安装 pyenv安装需要的python版本 xff0c 安装后需要pyenv rehash 创建工程文件夹 在文件夹中输入 pyenv loc
  • 关于独立版ASIO库在不同编译器下的几个使用问题

    window平台 一 在VS2019中使用 VS2019 使用微软自己的MSVC编译器 xff0c 只需要在工程项目属性中 加入2个预编译宏定义项 xff1a WIN32 WINNT span class token operator 61
  • Vue系列之单文件组件

    文章目录 前言一 什么是单文件组件 xff1f 二 单文件组件的结构三 如何引入并使用单文件组件1 B组件中需导出 xff08 export xff09 2 A组件中需导入并局部注册B xff08 import xff09 前言 Vue应用
  • 记录一个js自动批量导入模块的方法require.context()

    应用场景 在vuex中分模块管理全局数据时 xff0c 不用手动一个一个的导出 span class token keyword const span files span class token operator 61 span requ
  • 可截取签名

    可截取签名 定义 可截取签名 xff08 Content Extraction Signature CES xff09 的概念出现于 2001 年 xff0c 由一位名叫 Steinfeld 的学者提出1 可截取签名的特点在于 xff0c
  • 关于最新版win10下,vscode不能离线启动的解决方案

    问题描述 xff1a 双击vscode图标 xff0c 发现程序不能启动 xff0c 使用cmd输入code后提示 xff1a dns js 246 this handle 61 new ChannelWrap Error EFILE at
  • Docker Desktop for Windows(WSL 2 方式)数据卷位置和访问

    Docker Desktop for Windows 运行容器后发现 xff0c 挂载的卷并不是windows本地的文件 xff0c 后来发现在wsl2方式下 xff0c windows上的docker是运行在Windows10中的linu
  • windows10 安装 docker 基于 WSL 2

    Docker Desktop安装 下载Docker Desktop 下载 Docker Desktop Stable 2 3 0 2 或更高版本 https hub docker com editions community docker
  • frp内网穿透原理及配置应用

    1 Frp介绍 frp 是一个专注于内网穿透的高性能的反向代理应用 xff0c 支持 TCP UDP HTTP HTTPS 等多种协议 可以将内网服务以安全 便捷的方式通过具有公网 IP 节点的中转暴露到公网 frp 项目官网 https
  • mysql导出excel表格表结构

    里面的字段 xff0c 根据information schema COLUMNS表 SELECT COLUMN NAME 列名 COLUMN TYPE 数据类型 DATA TYPE 字段类型 IFNULL NUMERIC PRECISION
  • 使用Docker-compose安装NextCloud,并部署Collabora作为office服务

    使用Docker compose安装NextCloud xff0c 并部署Collabora作为office服务 安装Docker和docker compose 使用docker compose可以更快速的构建nextcloud需要的各个服
  • docker 部署 joplin server进行文档同步

    Joplin 是一个开源的笔记工具 xff0c 拥有 Windows macOS Linux iOS Android Terminal 版本的客户端 xff0c 可惜暂时还没有web版本的 多端同步功能是笔记工具最重要的功能 只有实现了多端
  • frappe_docker 开发模式初始化问题

    frappe 网络问题导致初始化失败 frappe 以docker的方式部署开发环境教程如下 xff1a frappe docker development at main frappe frappe docker GitHub 1 clo
  • 我的第一篇博客--感谢google的StudyJams活动

    感谢google的StudyJams活动推动我完成第一篇博客 技术上不是很精通 xff0c 说以从不敢在外面瞎说 在StudyJams小捏捏的催促下终于来丢人了 现在在研究Android xff0c ZigBee xff0c
  • 蓝牙CC2541的串口通讯

    协议栈版本是CC254x 1 3 2 TI把串口线管的东西封装在协议栈的一个NPI的文件夹中npi c 下面是npi c中的初始化函数 void NPI InitTransport npiCBack t npiCBack 初始化串口通讯 h
  • windows10 安装 docker 基于 WSL 2

    Docker Desktop安装 下载Docker Desktop 下载 Docker Desktop Stable 2 3 0 2 或更高版本 https hub docker com editions community docker
  • 1153

    include lt iostream gt using namespace std int main int n char a 300 cin gt gt n while gets a int len 61 strlen a cout l
  • 基于Anaconda配置Python开发环境详解(1)安装Anaconda并做基本配置

    本系列帖子将从纯小白的视角讲解新手使用Anaconda配置Python开发环境全流程 xff0c 使用Pycharm编辑器 conda包管理器 第一节是关于Anaconda安装的 什么是conda conda是一个开源的软件包管理系统和环境
  • 【Digger爬虫系列】用Digger抓取taptap游戏排行榜

    TapTap是一个推荐高品质手游的手游分享社区 实时同步全球各大应用市场游戏排行榜 与全球玩家共同交流并发掘高品质手游 taptap排行榜的抓取稍微有点绕 xff0c 让我门分析下它的排行榜如何抓取吧 xff01 首先起始页面的地址为 xf

随机推荐