凭借卓越的灵活性和高度集成的功能,Mikrotik在我心中稳居HomeLab最佳厂商设备的宝座。本文将详细介绍如何在Mikrotik上部署docker镜像。

环境准备

首先你需要知道你的Mikrotik版本是多少,架构是什么。基于这些信息,去官网查找模块包。以我个人设备为例:

我的设备版本是7.18.2,是目前这个时间的最新稳定版本,架构是arm64

https://mikrotik.com/download

在该URL中找到版本对应的Extra packages

该扩展包中包含:container-7.18.2-arm64.npk

把这个文件拖到mikrotik的file根目录中,进行以下操作:

  1. 重启。Mikrotik在重启过程中会自动安装这个扩展模块

  2. /system/device-mode/update container=yes配置该命令,启用container。

:配置完成之后会提示让你断电,此时必须物理断电,无法通过重启操作达成MT的需求

再次开机,即可开始配置

配置操作

网络配置

首先需要配置一个Bridge接口,该接口用于把所有的docker容器网卡绑在一起,且充当所有容器的网关

为该Bridge接口配置一个IP地址,并配置NAT,NAT成Mikrotik本身的WAN口IP即可

此处配置了172.16.139.0/24网段,bridge接口ip为254

为了简化配置,仅把该网段做src-nat

/ip firewall nat add action=src-nat chain=srcnat src-address=172.16.139.0/24 to-addresses=x.x.x.x(该ip为mikrotik网关IP)

紧接着配置VETH接口,该接口为docker容器的网卡,每个docker容器都需要一个VETH接口

同样配置172.16.139.0/24网段,网关为bridge接口ip,如不使用ipv6则不需要配置ipv6网关

把VETH接口绑定到bridge里,即完成网络环境配置

容器配置

首先需要配置仓库

此处我使用:https://index.docker.io,也可以使用任何其他的公有仓库或者私有仓库

注:目前docker在国内处于被封禁状态,即需要科学手段才能够做pull容器的操作,当然如果有环境的话也可以直接pull完镜像,上传到mikrotik

我使用该仓库需要访问的网段如下Dst.Address,大家可以直接进行优化:

然后就可以配置容器了,以hello-world为例:

前往hub.docker.com搜索需要的镜像名:hello-world

获取到pull镜像的命令,在mikrotik中只需要docker pull后面的容器名称即可

  • 点击+号进行配置,此处我们选择在线拉取镜像所以配置remote image,如果是上传文件的形式,则需要在file中选择上传的镜像文件

  • interface选择前面配置的veth1

  • root dir就是容器在mikrotik中的文件目录

  • 勾选logging,这个功能非常重要,有任何的日志都可以在mikrotik的日志中输出,包括但不限于拉取镜像失败,拉取成功,docker容器的日志

全部配置完成之后点击OK即会直接Pull镜像,Pull完之后容器会是stop状态,需要手工启用

文章作者: Wippe
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wippe's Blog
Network Network
喜欢就支持一下吧