
vlmcsd - portable open-source KMS Emulator in C.
Files are from third party programming effort, see [***] and https://github.com/Wind4/vlmcsd
No association.
You can download the source and compile, resulting in following binaries: vlmcs vlmcsd.
The following docker file should automate KMS server deployment (install required packages, download third party GitHub master branch program files, unzip, compile binaries and place in relevant file system area), running vlmcsd in a container instance with -D to run in foreground, hence run as pid 1.
Dockerfile also cleans up installation removing compile directory and downloaded zip from file system.
This could probably be improved further detecting changes in third party repo to trigger automatic docker build, but that seems a bit hard to do or requires further magic (third party web hooks??)
Therefore, automatic docker build will either be triggered manually (when I see third party developer has updated GitHub program version, and trigger manual build) or via docker file changes (less likely) in my linked repo.
While ENTRYPOINT is used, one could use CMD section to provide customised/different start parameters (override CMD parameters when starting container), remembering -D is required to run vlmcsd in foreground (or container will exit).
docker run -d -p 1688:1688/tcp --name kms-server gkuzet/kms
Explanation: start in daemon mode (-d), port translate (-p) external host port 1688 to container port 1688, with name (--name) kms-server.
docker exec -ti kms-server /bin/bash
Explanation: execute container interactive (-i) terminal (-t) session using bash (/bin/bash)
By default, without specifying further options, vlmcsd listens on all IPs (0.0.0.0) and TCP port 1688. This is done so deoployment is easier, not IP bound specific.
netstat -atun | grep 1688
tcp 0 0 0.0.0.0:1688 0.0.0.0:* LISTEN
As previously stated, one could override CMD parameters when starting a container (for example to only listen on specific IP and/or a different TCP port). See program man pages for all the options.
By default, log file is written at /var/log/vlmcsd.log
Man pages have been installed
man vlmcsd
man vlmcs
FROM ubuntu
MAINTAINER First Last "***"
RUN ["sh", "-c", "apt-get update && apt-get install -y \
wget \
unzip \
build-essential \
man-db \
"]
RUN ["sh", "-c", "wget https://github.com/Wind4/vlmcsd/archive/master.zip"]
RUN ["sh", "-c", "unzip master.zip"]
WORKDIR /vlmcsd-master
RUN ["sh", "-c", "make"]
WORKDIR /vlmcsd-master/bin
RUN ["sh", "-c", "cp * /usr/local/bin"]
WORKDIR /usr/local/share/man
RUN ["sh", "-c", "mkdir man1 man7 man8"]
WORKDIR /vlmcsd-master/man
RUN ["sh", "-c", "cp vlmcs.1 /usr/local/share/man/man1/"]
RUN ["sh", "-c", "cp vlmcsd.7 /usr/local/share/man/man7/"]
RUN ["sh", "-c", "cp vlmcsd.8 /usr/local/share/man/man8/"]
RUN ["sh", "-c", "mandb"]
WORKDIR /
RUN ["sh", "-c", "rm -rf /vlmcsd-master"]
RUN ["sh", "-c", "rm master.zip"]
ENTRYPOINT ["/usr/local/bin/vlmcsd", "-D"]
CMD ["-l", "/var/log/vlmcsd.log"]
EXPOSE 1688
Commands can be run as normal shell instead of array of commands. Unfortunately using shell line can cause issues, so its better to follow preferred exec version.
vlmcsd is
vlmcsd is not
Caveat emptor
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务