【大咖招募令】第二期优质稿件:容器魔方之docker五大异...
本帖最后由 大咖筛选官 于 2022-1-24 15:25 编辑上篇讲解了如何用debian 10安装网心云docker版,这篇就帮助大家减少踩坑的烦恼*^__^*。
一、宿主机的选择
一、我自己的测试来看,从新手视角出发,debian 10是跑网心云docker版的不二选择。原因如下:1.debian 10图形化的安装界面,基本跟着教程走,没有不会入手的。2.ubuntu也不是不行,有图形化的安装界面。但我们安装好后无需图形化的界面,debian 10可以节省系统占用资源3.ubuntu服务器版是全英文不好操作介绍安装方法。
二、docker安装和配置ubuntu在配置网心云docker上需要多一步创建dokcer的网络类型,比较麻烦。而debian 10较简单。戳了解“debian 10安装网心云docker版”详细教程:https://bbs.onethingcloud.com/forum.php?mod=viewthread&tid=4062
三、最小化的跑量宿主机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>(PS:正常停止并删除容器)
命令: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=falseonething1/wxedge:2.2.19重新下载最新映像并创建容器
重新拉取新映像
五、问题排查
异常一:
报错提示:在异常上提示一串英文(见上图)设备:多出现于arm64和arm架构的宿主机上解决方法及步骤:等个10分钟左右,会自行重复启动,直到正常。这种情况大多都是网络问题,没有完全解决的方法,重启可能还会岀现
异常二:
报错提示:业务部署下载失败或者显示无法联网(见上图)
解决方法及步骤:1.检查网关和dns地址是否正常联网2.简单判断宿主机是否联网:ping www.baidu.com
异常三:
报错提示:挂载磁盘路径不可写(见上图)解决方法及步骤: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,照上方升级教程升级(升级教程见【四、命令行正常创建例子,及升级步骤】)
以上是最近遇上且较多的坑或问题,欢迎补充,也可以留言,我都会去看看如何解决 (●'◡'●)
本帖原创作者:“softfuttery" 网络类型一直显示未知,年后看看吧, 感觉是bug. 为什么我一看代码!我脑袋疼 狗蛋哥哥 发表于 2022-1-24 16:54
网络类型一直显示未知,年后看看吧, 感觉是bug.
创建的网络类型是什么?还有宿主机 狗蛋哥哥 发表于 2022-1-24 16:54
网络类型一直显示未知,年后看看吧, 感觉是bug.
直接docker的宿主系统改用群晖,esxi上虚拟化的Ubuntu/mint上docker我试了一直是跑量正常,但是nat未知 upnp未知,网络模式host和macvlan都没用,收益一般,自己另一台同一网络下黑裙上docker跑就没这个问题,后面我就直接在esxi上虚拟个黑裙专门跑就正常了。应该是网心云官方打包镜像的问题吧,目测用群晖打包的,你在群晖上跑应该没啥问题 这代码!我不懂!哎 {:2_27:}
页:
[1]