Mikrotik 上的容器## 0. 简介从 Mikrotik ROS 7.4 Beta 4 开始,Mikrotik 添加了 Container 的新功能。¶
配置基于 Mikrotik RouterOS 7.13.1 。
1.启用容器模式¶
使用以下命令登录 RouterOS 中的终端:``` /system/device-mode/update container=yes
> 如果在 X86 上使用容器,您将需要按下重置按钮或冷重启来确认设备模式。
## 2. 创建网络### 桥接模式#### (1).为容器添加bridge veth接口:```
/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1
(2)。为容器创建一个桥并向其中添加 veth:```¶
/interface/bridge/add name=containers /ip/address/add address=172.17.0.1/24 interface=containers /interface/bridge/port add bridge=containers interface=veth1
#### (3)。为传出流量设置 NAT:```
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24
主机模式(Linux 设备上的 macvlan)#### (1).为容器添加主机veth接口:```¶
/interface/veth/add name=veth1 address=LAN_ADDRESS gateway=GATE_WAY_OF_LAN
3. 定义安装(可选):```¶
/container/mounts/add name=smartdns src=/smartdns.conf dst=/etc/smartdns/smartdns.conf
## 4.添加容器镜像### 来自外部库#### (1).设置注册表 URL```
/container/config/set registry-url=https://registry-1.docker.io
(2)。拉取镜像```¶
/container/add remote-image=dashdreams/smartdns:latest interface=veth1 \ root-dir=/smartdns hostname=smartdns mounts=smartdns workdir=/root
### 从 PC 导入图像```
/container/add file=smartdns.tar interface=veth1 root-dir=/smartdns \
hostname=smartdns mounts=smartdns workdir=/root
5.启动容器```¶
/container/start 0
## 6. 将端口转发到内部容器(可选)可以使用 dst-nat 转发端口(其中 192.168.88.1 路由器 IP 地址):```
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=192.168.88.1 dst-port=5353 protocol=tcp to-addresses=172.17.0.2 to-ports=53
笔记如何获取本地容器镜像:```¶
docker pull dashdreams/smartdns:latest@sha256:XXXXXXXXXXXXXXXXXXXXXXX docker save dashdreams/smartdns > smartdns.tar ```
参考文献[1]. https://help.mikrotik.com/docs/display/ROS/Container¶
[2]. http://www.irouteros.com/?p=2712
[3]. 使用 Podman 构建容器映像