kvm
和lxc
两种模式,说人话就是虚拟机和容器,比较轻量的应用我会优先使用lxc,磁盘和内存占用都非常低。如果对glibc没有强制要求的,我会优先使用 Alpine Linux 这个发行版,除开应用本身的资源,只有2m左右的系统文件,几乎没有内存和磁盘浪费。
我的PVE和虚机优先跑在SSD上,会比跑在HDD上有更好的io,所有SSD空间需要省着用。
我在使用Alpine的时候发现部分机器启动后,DHCP不会发送Hostname,导致OpenWrt看到的主机名是问号?
爬了一下Alpine的文档后找到,可在/etc/network/interfaces
增加hostname
参数来自定义发送主机名,问题解决,验证方式是查找系统进程udhcpc
看运行参数是否有 hostname:xxx
字样,例如:
> ps|grep dhcp
> /sbin/udhcpc -b -R -p /var/run/udhcpc.eth0.pid -i eth0 -x hostname:ptn
原因未知,使用的镜像都是一致的,部分容器开起来就是会出问题。。。可能隐藏的比较深。
]]>root@vultr:/opt/ngrok# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ngrokd.alpine latest d891322d86e4 2 minutes ago 14.03 MB
alpine 3.5 4a415e366388 11 days ago 3.987 MB
root@vultr:/opt/ngrok# du -sh ./bin/ngrokd
9.6M ./bin/ngrokd
root@vultr:/opt/ngrok# ldd bin/ngrokd
not a dynamic executable
因为依赖库的问题, ngrok 编译的时候需要增加 CGO_ENABLED=0
来指定静态编译, 所以生成的可执行文件会比较大.
例如: root@vultr:/opt/ngrok# CGO_ENABLED=0 make release-server
.
感觉可以把其它东西也都挪到 docker 了]]>