硬件信息:N5095+8G2666MHz+512GM.2
系统信息: Ubuntu 22.04.1 LTS
以下内容默认Ubuntu已经安装最新版Docker,如未安装需先安装Docker
部署通过纯命令行进行,无需图形界面
使用官方安装脚本,并使用阿里云镜像加速,防止无法访问Docker原网站导致访问超时:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或
curl -sSL https://get.daocloud.io/docker | sh
使用MobaXterm终端连接Ubuntu,使用ifconfig命令查看当前正在使用的网卡。找到正在启动的网卡名称后,开启网卡的混杂模式
# 现在使用的网卡名称为enp3s0,根据实际情况进行替换
ip link set enp3s0 promisc on
随后配置MACVLAN,其中注意:192.168.0.0和192.168.0.1根据实际情况进行替换
例如:当使用上述ifconfig命令发现设备的IP地址为192.168.1.112,则需要将192.168.0.0和192.168.0.1替换为192.168.1.0和192.168.1.1。
docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp3s0 macnet
创建好网络后,可以使用以下命令查看设置好的网络,其中第三个NAME为macnet即为我们刚才创建网络:
docker network ls
NETWORK ID NAME DRIVER SCOPE
ef157b2f1695 bridge bridge local
9e6448a30c4d host host local
a4fcd62a3fcb macnet macvlan local
7482e50ca32b none null local
宿主机的网络配置完成后,现在对OpenWRT的网络进行配置:
# 创建配置文件存放的目录
mkdir -p /home/docker/openwrt
# 创建网络配置文件并编辑
vim /home/docker/openwrt/network
network 配置文件如下:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option packet_steering '1'
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.0.3'
option gateway '192.168.0.1'
option dns '192.168.0.1'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
其中option ipaddr '192.168.0.3'需要将IP地址设置为你想要给OpenWRT分配的网络地址;option gateway '192.168.0.1'和option gateway '192.168.0.1'需要设置为路由器的地址
使用docker命令拉取镜像并运行
docker run --restart always --name openwrt -d --network macnet --privileged --ip 192.168.0.3 -v /home/docker/openwrt/network:/etc/config/network registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64 /sbin/init
命令中的192.168.0.3需要替换为刚刚option ipaddr '192.168.0.3'中设置的IP地址
如果运行命令后提示WARNING: IPv4 forwarding is disabled. Networking will not work则需要进行如下配置:
vim /etc/sysctl.conf
#添加 net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
再次执行上面命令即可
可以使用docker ps命令看到容器正常运行后,登录刚刚配置的ipaddr的IP地址,进行OpenWRT的后台页面
用户名:root
密码:password
进入后台页面可以根据需要配置Clash、SmartDNS等服务实现科学上网或广告屏蔽等功能
To Be Continued…
1.Ubuntu Docker 安装
2.在Docker 中运行 OpenWrt 旁路网关
3.Docker 安装 openwrt 软路由
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
从MB升级到新的MBP后,Apple的迁移助手没有移动我的gem。我这次是通过macports安装rubygems,希望在下次升级时避免这种情况。有什么我应该注意的陷阱吗? 最佳答案 如果你想把你的gems安装在你的主目录中(在传输过程中应该复制过来,作为一个附带的好处,会让你以你自己的身份运行geminstall,而不是root),将gemhome:键设置为您在~/.gemrc中的主目录中的路径. 关于通过MacPorts的RubyGems是个好主意吗?,我们在StackOverf
当我执行>rvminstall1.9.2时一切顺利。然后我做>rvmuse1.9.2也很顺利。但是当涉及到ruby-v时..sam@sjones:~$rvminstall1.9.2/home/sam/.rvm/rubies/ruby-1.9.2-p136,thismaytakeawhiledependingonyourcpu(s)...ruby-1.9.2-p136-#fetchingruby-1.9.2-p136-#downloadingruby-1.9.2-p136,thismaytakeawhiledependingonyourconnection...%Total%Rece