|
本帖最后由 badcrazy 于 2023-8-29 22:27 编辑
大家都知道docker是linux的产物,win想玩转docker目前有三条路,1虚拟机、2wsl、3docker desktop,其中2和3对系统有要求,都是win10某个小版本以上,而且说到底也是基于hyper-v的虚拟机,所以说来说去win下要玩docker就是虚拟机跑linux一条路。
一、虚拟机软件选择
win下三大虚拟机,hyper-v、vmware、vbox。在xp时代就在玩虚拟机的应该知道connectix virtual pc,微软收购了这个软件后来就有了hyper-v,在vpc时代,他的特色就是内存性能一骑绝尘,但是磁盘性能稀烂,现在整合进了windows,各方面的性能都不错,但是不支持usb十分别扭,所以我一直不喜欢用。vmware,老牌虚拟机,目前公认性能最佳。vbox,开源的,但性能三者里最迟啊,一般不推荐。所以hyper-v还是vmware看你喜欢。
首先玩虚拟机建议8g内存,4g能跑,但是内存很捉急,一般不建议。我配置大家知道j1900,最近弄了根白菜8g,系统winserver 2012 r2,虚拟机选了vmware12,最新的版本是17,但是我这个配置老,系统老,追新没意思。
二、虚拟系统的选择
就像linux下虚拟win大家要选精简版一样,我们虚拟linux也要一个精简的系统,特别我们只需要docker功能。所以各种商业版就不用考虑了,那么最近很火的armbian呢?确实可以,但是armbian x86的安装镜像就有700m,参考arm,安装后1.Xg磁盘空间建占用是没跑了,这还是没跑任何服务的状态那么还有更合适的吗?
这里我推荐openwrt,没错,就是软路由刷的系统,简称op,为啥推荐?op是一个高度定制化的精简linux系统,资源占用极低,就给大家看下官方op刷完并汉化后的占用,内存占用170m,磁盘占用19m,是不是很意外?
装完docker并启用(启用docker,并没跑容器)后的占用内存占用220m,磁盘占用270m
这么点占用就搞定了docker环境,反正我不知道还有哪个系统可以。
三、搭建教程
简单说下过程,我的选择是官方op,因为只要docker,不需要乱七八糟功能,官方自然最纯净最合适,当你们也可以自己编译或者选别人编译的op,我就拿官方op来说下
1、去清华源下载op,因为op22.03防火墙更换为nftables,而docker目前还没支持,会导致容器映射端口失败,所以选择22.03前一个版本21.02
Index of /openwrt/releases/21.02.7/targets/x86/64/ | 清华大学开源软件镜像站
我选择openwrt-21.02.7-x86-64-generic-ext4-combined-efi.img.gz,解压缩得到img,用StarWind V2V Converter转换为一个120m的vmdk,新建虚拟机,加载这个磁盘镜像,另外新建一个磁盘,作为你将要使用的磁盘,我建了一个16g的,网络选桥接,这样虚拟机可以和所有设备在同一个网段。
2、启动完成后看下路由器有没有新设备,有跳过,没有需要设置下lan口为dhcp。在虚拟机里敲下回车,出现命令行,输入
uci set network.lan.proto=dhcp
uci commit network
这是把lan口设置为dhcp并保存
然后reboot重启,虽然可以重启网络,但是reboot就6个字母,方便。
3、根据路由器上看到ip地址用ssh软件连接,用户名root,默认没有密码
首先输入sed -i 's/downloads.openwrt.org/mirrors.tuna.tsinghua.edu.cn\/lede/g' /etc/opkg/distfeeds.conf把源切换到清华镜像
然后opkg update && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade && opkg install luci-i18n-base-zh-cn luci-i18n-opkg-zh-cn luci-compat luci-lib-ipkg 完成升级并安装中文语言包并安装lcui兼容包,这个包是因为很多国内你懂的软件都是老luci,需要兼容
4、输入opkg install fdisk kmod-fs-ext4 block-mount,这是安装分区软件和挂载点
然后fdisk -l看下磁盘,vm下一般显示 /dev/sdb,然后fdisk /dev/sdb进行分区,先输入m出菜单,然后g建gpt磁盘,n建立分区,一般输入1分一个就行了,最后按w保存退出,分区后mkfs.ext4 /dev/sdb,完成后reboot重启
5、重启后在挂载点把/dev/sdb挂载为/也就是root
保存并应用后系统会提示你输入一堆命令,复制下来,记住把里面的sdb1改为实际的分区名,比如这里是sdb,然后在ssh一次性输入一下啊命令
mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/sdb /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot
完成后reboot重启
6、重启后看下磁盘空间是不是变成了修改后的15.xg,不再是120m,发现官方源的dockerman有问题,菜单显示不全,建议用我附件里的安装
确认无误后把附件下载后解压缩的luci-app-dockerman_v0.5.26_all.ipk用winscp上传到/tmp,然后ssh上去
cd /tmp
opkg update && opkg install *.ipk
dockerman整体和portainer比较接近,但是更强大,比如可以手动添加,也可以直接输入命令(就是docker run -d --name=xxx这样的)新建容器,配置项目也更直观丰富,安装过程也全程显示,就像在ssh一样
有容器更新按钮,可以一键自动更新镜像并重建容器,可以说对小白和专家都十分友好,对比portainer和fast os,个人认为dockerman是最佳docker面板,没有之一,可惜daocker没法通过docker部署,而是一个luci插件,也就是说,op专用
到此docker环境就搭建好了,怎么玩这里就不说了,各种教程自己找
最后发一下物理机的资源占用情况,夸克在同步,nasacb在做人脸识别,vm跑着op也就这样,除了没有下载,这基本上就是我nas的满负荷状态了
资源占用最大的也是夸克和nascab
windows没那么可怕,什么没有32个g跑不了虚拟机完全是笑话
dockerman附件
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|