记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

ROS简单Container教程

ROS简单Container教程
容器Container是MikroTik RouterOS对Linux Docker的实现,允许用户在RouterOS中运行Docker。Container是在 RouterOS v7.4beta4中开始支持的(其实之前RC版本也支持过)。可以说RouterOS V7版本开始用Container替代了原来的KVM比较合适,目前RouterOS V7不支持KVM了。
一、环境准备
1、RouterOS V7.6
2、AdGuard Home Docker镜像
二、RouterOS Container Package安装
1、把container-7.6的包上传到ROS的Files,重启安装
三、RouerOS Device-Mode设置
ROS新增了Device-mode,默认情况下是限制container使用。Device-mode是一种对设备功能限制属性,即限制对特定功能配置的访问。有两种模式: enterprise和home(企业模式和家庭模式),所有设备默认都使用enterprise。目前Winbox无法管理,只能使用命令。
如果直接使用container会报错,报错提示”Couldn't add Container - not allowed by device-mode (6)“
1、查看当前Device-Mode
XML/HTML代码
  1. /system/device-mode/ print
2、当在enterprise模式下,启用container模式
XML/HTML代码
  1. /system/device-mode/ update container=yes
3、重启设备(这步要非常注意)
说明:需要在5分钟内,拔插电源重启设备(远程重启无效)或者按设备的reset按钮确认执行container模式,设备会重启生效进入container模式。如果在规定的时间内没有关机或按下reset按钮,则取消模式切换。如果同时运行另一个更新命令,则两个更新命令都将被取消。
目前这部最好的操作就是看到这个提示,什么也不要操作,拔电源重启(虚拟机直接在外部关机重启)即可
四、网络设置
情况1:如果当前有Briage,可以进行以下操作。设置container网卡的ip和网关(根据需求设置),然后在把veth1加入到当前bridge1。
XML/HTML代码
  1. /interface/veth/add name=veth1 address=172.16.0.2/24 gateway=172.16.0.1
  2. /interface/bridge/port add bridge=bridge1 interface=veth1
情况2:如果当前没有Briage,那么就需要创建Briage,并设置局域网IP
XML/HTML代码
  1. /interface/bridge/add name=docker
  2. /ip/address/add address=172.16.0.1/24 interface=docker
然后设置container网卡ip和网关,再加入到bridge
XML/HTML代码
  1. /interface/veth/add name=veth1 address=172.16.0.2/24 gateway=172.16.0.1
  2. /interface/bridge/port add bridge=docker interface=veth1
最后设置NAT以及端口转发
XML/HTML代码
  1. /ip/firewall/nat/add chain=srcnat action=masquerade
  2. /ip firewall/nat/add action=dst-nat chain=dstnat dst-port=3000 protocol=tcp to-addresses=172.16.0.2 to-ports=3000
五、外部镜像安装AdGuardHome
1、Container设置Docker镜像地址和目录
XML/HTML代码
  1. /container/config/set registry-url=https://registry-1.docker.io tmpdir=container
2、创建AdGuardHome
XML/HTML代码
  1. /container/add remote-image=adguard/adguardhome:latest interface=veth1 root-dir=container/adgurdhome logging=yes
3、等到Status变成Stopped,然后就可以启动了。
XML/HTML代码
  1. /container/print
  2. /container/start 1
4、通过web地址,可以访问了。
六、上传镜像安装AdGuardHome
当然ROS也提供了离线上传镜像安装的方式
1、从其他Docker上导出镜像
XML/HTML代码
  1. docker save adguard/adguardhome > adguardhome.tar
2、上传adguardhome.tar到ROS Files
3、创建AdGuardHome
XML/HTML代码
  1. /container/add file=adguardhome.tar interface=veth1 root-dir=container/adgurdhome logging=yes
4、选中,点击Start运行,同时可以通过Log查看日志
七、结尾
目前在Winbox中的file目录下无法看到container的配置文件,只能通过FTP去查看。
注意:因为Docker官方镜像被墙无法正常拉取,可以设置科学或者命令导出或者通过其他方式导出,然后上传ROS使用,如果通过web或者winbox添加镜像,可以直接选择tar包。另外ROS的容器为非标准docker,命令可能不通用,活学活用设置CMD参数,也可以实现需要的功能。
官方文档  参考1  参考2  参考3  参考4  参考5
附:ROS常用设置设置命令
修改用户密码
[admin@MikroTik]>/user                                                #进入操作路径
[admin@MikroTik]/user>print                                          #显示RouterOS用户
[admin@MikroTik]/user>set admin password=123456        #修改admin用户密码为123456
[admin@MikroTik] /user> /                                              #返回根目录
在当前用户下修改密码
[admin@MikroTik]>password                                           #修改本目录用户密码
备份命令
[admin@MikroTik]>/system backup                                   #进入操作路径
[admin@MikroTik] /system backup>save dont-encrypt=yes name=test         #备份名为test(不加密)
[admin@MikroTik] /system backup>load name=test.backup   #载入备份test.backup
[admin@MikroTik]>file print                                                #查看备份情况
导出指令
[admin@MikroTik]>ip address print                                     #查看IP
[admin@MikroTik]>/ip address                                           #进入IP操作路径
[admin@MikroTik]/ip address>export file=address                #导出一个名为address的IP地址配置参数
[admin@MikroTik]>export compact                                     #查看IP地址配置参数
[admin@MikroTik]>export                                                  #查看详细设置命令
[admin@MikroTik]>export file bak                                       #导出系统配置命令
[admin@MikroTik]>ip export file ip                                      #导出ip配置命令
注意:system backup是全部参数备份,export是导出部分参数,如密码之类看不到也无法备份还原。
系统重启与关机
[admin@MikroTik]>system reboot                                        #系统重启
[admin@MikroTik]>system shutdown                                   #系统关机
修改RouterOS主机名
[admin@MikroTik]>system identity print                               #查看RouterOS主机名
[admin@MikroTik]>system identity set name=MyRouterOS    #修改RouterOS主机名为MyRouterOS
系统资源管理
[admin@MikroTik] > /system resource                                 #操作路径
[admin@MikroTik] /system resource> print                           #查看CPU占用率\内存\硬
盘等使用情况
[admin@MikroTik] /system resource> monitor                      #查看CPU和空闲内存使用情况
开通ssh远程
[admin@MikroTik] > ip service print                                     #查看服务
[admin@MikroTik] > ip service enable ssh                            #开启SSH服务
[admin@MikroTik] > ip service disable ssh                            #关闭SSH服务
[admin@MikroTik] > ip service set ssh port=22 address=10.8.9.11   #允许10.8.9.11访问SSH访问,其它IP都均被拒绝
Interface接口基本操作
[admin@MikroTik] > interface print                                     #显示接口状态
[admin@MikroTik] > interface enable ether1                        #启动ether1网卡
[admin@MikroTik] > interface print stats                             #显示接口状态+静态流量
[admin@MikroTik] > interface monitor-traffic ether1              #监测网卡动态流量
[admin@MikroTik] > interface ethernet print detail                #显示网卡参数
IP配置与ARP
[admin@MikroTik] > ip address add address=192.168.10.1/24 interface=ether2   #添加IP地址到ether2接口上
[admin@MikroTik] > ip address print                                    #显示IP地址
[admin@MikroTik] > ip arp print                                           #显示arp信息
[admin@MikroTik] > ip arp add address=192.168.10.100 interface=00:23:24:2e:78:3e   #添加静态IP与ARP
[admin@MikroTik] >/interface ethernet set ether2 arp=reply-only  #设置ether2接口非静态的ARP条目将无法与路由进行通信
防火墙过滤(firewall Filte)----域名过滤
[admin@MikroTik]>ip firewall filter add action=drop chain=forward content=www.jd.com
防火墙过滤(firewall Filte)----端口映射将内网主机192.168.10.200的3389端口映射到外网的9999端口
[admin@MikroTik] > ip firewall nat add chain=dstnat protocol=tcp dst-port=9999 in-interface=WAN action=dst-nat to-addresses=192.168.10.200 to-ports=3389
##设置NAT转发
[admin@MikroTik] > ip firewall nat  add action=masquerade chain=srcnat
##设置NAT1
[admin@MikroTik] > ip firewall nat  add action=endpoint-independent-nat chain=dstnat protocol=udp randomise-ports=no
[admin@MikroTik] > ip firewall nat  add action=endpoint-independent-nat chain=srcnat protocol=udp randomise-ports=no

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):