注意

本次操作均在管理员权限下进行

本教程仅适用于Linux

开启网卡的混淆模式

ip link set eth0 promisc on

创建网络

docker network create -d macvlan --subnet=192.168.132.0/24 --gateway=192.168.132.1 -o parent=eth0 macnet

这一条命令需要根据所处的网络环境来做修改,可以使用ifconfig命令来查看网卡获得的 IP 地址,如果获得的IP地址为192.168.12.15,那么说明处在192.168.12.x网段,相应的,命令中的192.168.132.0192.168.132.1需要被替换成192.168.12.0192.168.12.1

查看docker网络

命令docker network ls可查看docker创建的网络状态

root@aml:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
19f7ee69196a        bridge              bridge              local
28b624229e21        host                host                local
1b6a093d7529        macnet              macvlan             local
ce29ea609293        none                null                local

创建容器

docker run --restart always --name openwrt -d --network macnet --privileged openwrt /sbin/init

其中:

--restart always参数表示容器退出时始终重启,使服务尽量保持始终可用;

--name openwrt参数定义了容器的名称;

-d参数定义使容器运行在 Daemon 模式;

--network macnet参数定义将容器加入 maxnet网络;

--privileged参数定义容器运行在特权模式下;

openwrt为 Docker 镜像名,因容器托管在阿里云 Docker 镜像仓库内,所以在镜像名中含有阿里云仓库信息;

/sbin/init定义容器启动后执行的命令。