在前几个文章中,我讲述了使用Docker搭建KMS服务端

https://www.xiwangly.top/%e5%80%9f%e5%8a%a9srv%e8%ae%b0%e5%bd%95%e5%ae%9e%e7%8e%b0kms%e4%b8%8d%e4%be%9d%e8%b5%96%e8%bd%af%e4%bb%b6%e5%b1%80%e5%9f%9f%e7%bd%91%e8%87%aa%e5%8a%a8%e6%bf%80%e6%b4%bbwindows%e5%92%8coffice.html

以及我的KMS服务在试运行

https://www.xiwangly.top/kms%e6%bf%80%e6%b4%bb%e6%9c%8d%e5%8a%a1%e8%af%95%e7%82%b9%e8%bf%90%e8%a1%8c.html

还有我在B站上发布的一个整活视频:(https://www.bilibili.com/video/BV1U44y1m7Yq

现在,我又提交了极简版的Docker版 KMS服务端(其实就是换了Busybox作为基础镜像,然后把KMS的主程序丢进去)

我提交在了Docker Hub上:https://hub.docker.com/r/xiwangly/kms/tags,对应slim标签,

Dockerfile可以在https://github.com/xiwangly2/kms/tree/main/busybox找到

Dockerfile内容如下:(很硬核,其实是我懒得做)

FROM busybox:musl AS Builder

COPY "vlmcsd-2018.zip" "/tmp"

RUN /bin/sh -c '\
arch="$(arch)";\
unzip -q /tmp/vlmcsd-2018.zip -d /tmp;\
mkdir -p /usr/local/;\
if [[ $arch =~ "x86_64" ]];then mv /tmp/vlmcsd-2018/binaries/Linux/intel/static/vlmcsd-x64-musl-static /usr/local/vlmcsd;fi;\
if [[ $arch =~ "aarch64" ]];then mv /tmp/vlmcsd-2018/binaries/Linux/arm/little-endian/static/vlmcsd-armv7el-uclibc-static /usr/local/vlmcsd;fi;\
if [[ $arch =~ "arm" ]];then mv /tmp/vlmcsd-2018/binaries/Linux/arm/little-endian/static/vlmcsd-armv7el-uclibc-static /usr/local/vlmcsd;fi;\
if [[ $arch =~ "x86" ]];then mv /tmp/vlmcsd-2018/binaries/Linux/intel/static/vlmcsd-x86-musl-static /usr/local/vlmcsd;fi;\
if [[ $arch =~ "ppc64le" ]];then mv /tmp/vlmcsd-2018/binaries/Linux/ppc/little-endian/glibc/vlmcsd-ppc64el-glibc /usr/local/vlmcsd;fi;\
if [[ $arch =~ "s390x" ]];then mv /tmp/vlmcsd-2018/vlmcsd-2018/binaries/Linux/s390/glibc/vlmcsd-s390x-glibc /usr/local/vlmcsd;fi;\
rm /tmp/vlmcsd-2018.zip;\
rm -r /tmp/vlmcsd-2018;\
'
FROM busybox:musl

COPY --from=Builder /usr/local/vlmcsd /usr/local/vlmcsd

RUN chmod 777 /usr/local/vlmcsd

ENTRYPOINT /usr/local/vlmcsd && /bin/sh

我这个KMS服务由沧水的KMS服务修改而来,所以看起来和沧水的那个很像(

因为vlmcsd是后台运行的,且没有控制台输出,所以用/bin/sh凑合了一下,要不然容器跑完就会退出

我就直接拿buildx构建这个镜像(我偷懒了,还有几个相对冷门的架构我可能没仔细看,我主要做了arm64和arm64v8的)

docker buildx build --platform linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/ppc64le,linux/s390x -t xiwangly/kms:slim . --push

RUN起来:

注:请勿在受DMCA保护的网络区域搭建此服务!

如果宿主机是CentOS之类的系统,请先在宿主机关闭SELinux

docker run -itd --name=kms -p 1688:1688 --restart=always xiwangly/kms:slim

然后我用HEU_KMS_Activator测试了一下,行,可以用

那有人可能会问了,我搭建这个有什么用呢?这我觉得吧,因人而异,就比如要不要搭建私人DNS是一个道理,又或者说网上的某些KMS服务器挂掉了,那我们自己可以手动搭建一个,方便自己激活Windows和Office,而且使用Docker一键部署可以减少搭建的步骤,实现开箱即用

本文针对于运维人员,可能对小白不友好(

本文是随笔,文章可能写的非常没有头绪(

参考文章:

https://juejin.cn/post/7000018934686547999