跳转至

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

### (2)。将 veth 添加到 LAN 桥接器```
/interface/bridge/port add bridge=LAN_BRIDGE interface=veth1

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 构建容器映像