上篇讲解了如何用debian 10安装网心云docker版,这篇就帮助大家减少踩坑的烦恼*^__^*。
一、宿主机的选择
一、我自己的测试来看,从新手视角出发,debian 10是跑网心云docker版的不二选择。
原因如下:
1.debian 10图形化的安装界面,基本跟着教程走,没有不会入手的。
2.ubuntu也不是不行,有图形化的安装界面。但我们安装好后无需图形化的界面,debian 10可以节省系统占用资源
3.ubuntu服务器版是全英文不好操作介绍安装方法。
二、docker安装和配置
ubuntu在配置网心云docker上需要多一步创建dokcer的网络类型,比较麻烦。而debian 10较简单。
戳了解“debian 10安装网心云docker版”详细教程:
三、最小化的跑量宿主机
1,alpine是最小的linux之一,安装较方便,缺点少了图形化安装界面且教程较少。
2,openwrt可以吗?不行,我始终认为网络就干网络的活。我相信大多数人都是拿编译好的固件来跑的,且不先说稳定性问题,网络结构优化就够你喝一壶(#`-_ゝ-)。
(老司机经验之谈,openwrt下docker网络类型非常奇怪,不建议做为宿主机)
二、了解docker创建命令
例子:
docker run -d --name=wxedge --restart=always --privileged--net=host --memory 800m--memory-swap 800m --tmpfs /run --tmpfs /tmp -v /mnt/sda1/wxedge_storage:/storage:rw -e REC=false onething1/wxedge
每个代码段的解析,不求理解,只求了解即可
docker run -d 调用docker程序创建网心云容器命令
--name=wxedge 容器的名字,可随意命名,比如启动多个网心容器时,可命名wxedge1,wxedge2
--restart=always 重启宿主机时自动启动该容器
--privileged 容器内的管理员权限拥有宿主机的管理员权限,必开
--net=host 网络模式,在网心云模式中可用host和macvlan,macvlan多开必需,host模式使用宿主机网络,例如宿主机的ip是192.168.1.223,那访问网心云后台为192.168.1.223:18888
--memory 800m 内存可使用最大限制,以m为单位,例如4096m为4GB内存大小,若机器的内存不足可使用该代码段分配内存限制
--memory-swap 800m 设置 内存+swap 的使用限额。我们在安装系统的时候已经建立了 swap 分区。swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。
--tmpfs /run 无需了解,创建时必须有代码段
--tmpfs /tmp 无需了解,创建时必须有代码段
-v /data/wxedge_storage:/storage:rw 将硬盘空间大小映射容器中的/storage文件夹中
/data/wxedge_storage挂载硬盘路径,实际硬盘文件夹位置
-eREC=false 第一次安装设置为false时,不会启动默认任务,默认为true,仅第一次安装有效。
onething1/wxedge 指定下载的映像名,默认下载latset,即下载最新版,onething1/wxedge:2.2.19 可指定下载2.2.19版本
三、网络结构优化(下期进行详细讲解)
最优解:光猫改桥接,单纯做光电转换(此步可百度教程)
路由器拨号,开upnp,路由器下接跑量设备
这种情况无论如何都可以得到全锥型(若不是,直接投诉运营商,说玩游戏,nat层不行)。
全锥型优化为映射公网型,需要咨询运营商是否能开启公网。
四、命令行正常创建例子,及升级步骤
未下载网心云映像前提下,会自动下载映像并创建容器,无报错例子如上图
已下载网心云映像前提下,会创建容器,无报错例子如上图
命令:docker ps(PS展示正在运行的容器)
命令:docker stop <CONTAINER ID>
命令:docker rm <CONTAINER ID>
命令:docker images(PS:查看所有映像)
命令:docker rmi<REPOSITORY>(PS:删除映像)
docker run -d --name=wxedge --restart=always --privileged --net=host --tmpfs /run --tmpfs /tmp -v /volume1/docker/wxedge:/storage:rw -e REC=false onething1/wxedge:2.2.19
五、问题排查
异常一:
报错提示:在异常上提示一串英文(见上图)
设备:多出现于arm64和arm架构的宿主机上
解决方法及步骤:等个10分钟左右,会自行重复启动,直到正常。这种情况大多都是网络问题,没有完全解决的方法,重启可能还会岀现
异常二:
报错提示:业务部署下载失败或者显示无法联网(见上图)
解决方法及步骤:
1.检查网关和dns地址是否正常联网
异常三:
报错提示:挂载磁盘路径不可写(见上图)
解决方法及步骤:
1.--privileged 检查创建代码是否加上该代码段
2.-v /data/wxedge_storage:/storage:rw 检查挂载硬盘路径是否正确,权限是否正确,挂载硬盘路径最好是绝对路径
3.一般硬盘挂载路经为/mnt或/media,挂载路径为/dev一般是不正确的
4.使用df -h查看硬盘挂载地址和大小
5.如下图:那么该代码应改为-v /mnt/sdb1/wxedge_storage:/storage:rw
异常四:
报错提示:恶意删除激活码(见上图)
解决方法及步骤:
检查一下wxedge_storage/下文件wxnode是否齐全,迁移容器时经常出现的报错
异常五:
报错提示:无业务(见上图)
解决方法及步骤:
情况一:使用了-eREC=false 第一次安装设置为false时,不会启动默认任务,默认为true,仅第一次安装有效。这种正常,常用于已知你现有网络跑量好的业务,多开时无需再等待默认业务部署后再删除
情况二:正常跑流量,无业务,24小时在线无收益,需检查应用版本号:是否大于等于v2.2.19,照上方升级教程升级(升级教程见【四、命令行正常创建例子,及升级步骤】)
以上是最近遇上且较多的坑或问题,欢迎补充,也可以留言,我都会去看看如何解决 (●'◡'●)