一、安装docker
使用官方的脚本进行安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后执行 docker 命令是需要加 sudo 权限的,这样操作会比较麻烦, 我们可以做如下操作
sudo groupadd docker
如果没有 docker 组的话,添加一个 docker 组
sudo gpasswd -a ${USER} docker
把当前登陆的用户添加到 docker 组
sudo service docker restart
重启 docker 服务
newgrp - docker
切换到新的回话
二、设置网络
通过ssh登录到你的T1设备
- 把网卡的混杂模式打开
打开后 openwrt 才能正确的收到数据
sudo ip link set eth0 promisc on
创建docker网卡
通过下面的命令我们通过docker创建了一个macvlan的网卡 ip与网关跟网卡都要记得与你的上层路由器配置在同一网段,网关指向它。
docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.1 -o parent=eth0 macnet
macvlan 模式会为每个容器创建一个独立的 ip 每个容器可以通过独立的 ip 进行访问
三、下载openwrt镜像并启动
镜像下载
这里包含了很全的镜像文件包含了 arm x86 x64 的 docker 镜像文件,我装的机子是斐讯的T1架构为x64,所以我使用的镜像为sulinggg/openwrt:latest,要查看系统是不是64的可以通过uname -a
来查看
拉取镜像:docker pull sulinggg/openwrt
拉取完成后,可以通过docker images
查看已经下载的镜像
启动docker镜像
注解:docker在后台运行 名为openwrt的容器 主机异常就重启这个容器,网络选择macnet,与主机互通
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt /sbin/init
四、设置容器id
到这里的时候我们的openwrt已经启动起来了,我们可以通过docker ps -a
来查看
root@arm-64:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84d399ea13f6 sulinggg/openwrt "/sbin/init" About an hour ago Up About an hour openwrt
可以看到我的 openwrt 容器已经运行了, 并且容器 ID是:84d399ea13f6
下面要进入到容器里面并设置容器的 ip 。通过命令
docker exec -it 84d399ea13f6 bash
进入到容器内部
下面开始设置容器的 ip 以便我们能通过 ip 地址访问容器, 通过命令:vim /etc/config/netwrok 来设置 ip。 按住 i 键开始输入config interface 'lan' option type 'bridge' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '192.168.31.100' option gateway '192.168.31.1' option dns '114.114.114.114'
其中 option ipaddr 是你的 openwrt 的地址,注意不要与局域网其它设备冲突 . option gateway 与 option dns 设置你路由器的地址设置完成依次按:Esc -> : -> wq -> 回车保存
保存完成后通过命令 /etc/init.d/network restart 重启网络, 重启完成后便可以通过浏览器访问了 http://192.168.31.100 默认密码是 password
评论 (0)