{"id":458,"date":"2026-01-26T09:34:21","date_gmt":"2026-01-26T09:34:21","guid":{"rendered":"https:\/\/blog.gpst.net.cn:4008\/?p=458"},"modified":"2026-01-28T06:24:12","modified_gmt":"2026-01-28T06:24:12","slug":"docker%e8%bf%90%e7%bb%b4-%e6%90%ad%e5%bb%bakms%e6%9c%8d%e5%8a%a1%e5%99%a8","status":"publish","type":"post","link":"https:\/\/opshub.com.cn\/?p=458","title":{"rendered":"docker\u8fd0\u7ef4\u2014\u2014\u642d\u5efakms\u670d\u52a1\u5668"},"content":{"rendered":"\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-39d6e725-0448-46b6-858a-1ea6218da2dd\" href=\"https:\/\/opshub.com.cn\/wp-content\/uploads\/2026\/01\/vlmcsd-20251208.tar.gz\">vlmcsd-20251208.tar<\/a><a href=\"https:\/\/opshub.com.cn\/wp-content\/uploads\/2026\/01\/vlmcsd-20251208.tar.gz\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-39d6e725-0448-46b6-858a-1ea6218da2dd\">Download<\/a><\/div>\n\n\n\n<p>\u65b0\u5efa\u9879\u76ee\u6587\u4ef6\u5939<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/data\/containers\/kms_server<\/code><\/pre>\n\n\n\n<p>\u6587\u4ef6\u5939\u7ed3\u6784\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\n\u251c\u2500\u2500 build\n\u2502&nbsp;&nbsp; \u251c\u2500\u2500 Dockerfile\n\u2502&nbsp;&nbsp; \u2514\u2500\u2500 vlmcsd-x64-musl\n\u251c\u2500\u2500 docker-compose.yml\n\u2514\u2500\u2500 nginx\n    \u251c\u2500\u2500 conf.d\n    \u2502&nbsp;&nbsp; \u251c\u2500\u2500 cn.conf\n    \u2502&nbsp;&nbsp; \u2514\u2500\u2500 vlmcsd.conf\n    \u251c\u2500\u2500 log\n    \u2514\u2500\u2500 nginx.conf\n\n5 directories, 6 files<\/code><\/pre>\n\n\n\n<p>docker-compose.yml:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:\n  vlmcsd:\n    build: .\/build\n    container_name: vlmcsd\n    restart: always\n    tty: true\n  nginx:\n    image: nginx:latest\n    container_name: vlmcsd.nginx\n    restart: always\n    tty: true\n    volumes:\n    - .\/nginx\/nginx.conf:\/etc\/nginx\/nginx.conf:rw\n    - .\/nginx\/conf.d:\/etc\/nginx\/conf.d:rw\n    - .\/nginx\/log:\/var\/log\/nginx:rw\n    ports:\n    - 1688:1688\/tcp\n<\/code><\/pre>\n\n\n\n<p>Dockerfile\u5185\u5bb9\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FROM alpine:latest\nRUN sed -i 's\/dl-cdn.alpinelinux.org\/mirrors.nju.edu.cn\/g' \/etc\/apk\/repositories &amp;&amp; \\\n    apk add --no-cache tzdata\nWORKDIR \/app\nCOPY .\/vlmcsd-x64-musl .\nENV TZ=Asia\/Shanghai\nENTRYPOINT &#091;\"\/app\/vlmcsd-x64-musl\",\"-L\",\"0.0.0.0:1688\",\"-l\",\"\/dev\/stdout\",\"-d\",\"-v\",\"-c1\",\"-D\"]\nEXPOSE 1688<\/code><\/pre>\n\n\n\n<p>nginx\/conf.d\/vlmcsd.conf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>stream {\n    log_format proxy '$remote_addr &#091;$time_local] '\n    '$protocol $status $bytes_sent $bytes_received '\n    '$session_time \"$upstream_addr\" '\n    '\"$upstream_bytes_sent\" \"$upstream_bytes_received\" \"$upstream_connect_time\"';\n    access_log \/var\/log\/nginx\/vlmcsd.log proxy;\n\n    limit_conn_zone $binary_remote_addr zone=rueoef:10m;\n    upstream seeeanhhe {\n        hash $remote_addr consistent;\n        server vlmcsd:1688;\n    }\n    geo $gsswqeehhorgs {\n        default 0;\n        192.168.0.0\/16 1;\n        10.0.0.0\/8 1;\n        172.16.0.0\/12 1;\n        include conf.d\/cn.conf;\n    }\n    map $gsswqeehhorgs $gsswqeehhorgs_flag {\n        default 127.0.0.36:31680;\n        1 seeeanhhe;\n        CN seeeanhhe;\n    }\n    server {\n        listen 1688;\n        limit_conn rueoef 3;\n        proxy_pass $gsswqeehhorgs_flag;\n        set_real_ip_from 192.168.0.0\/16;\n        set_real_ip_from 10.0.0.0\/8;\n        set_real_ip_from 172.16.0.0\/12;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>nginx\/conf.d\/cn.conf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1.0.1.0\/24 CN;\n1.0.2.0\/23 CN;\n1.0.8.0\/21 CN;\n1.0.32.0\/19 CN;\n1.1.0.0\/24 CN;\n1.1.2.0\/23 CN;\n1.1.4.0\/22 CN;\n1.1.8.0\/24 CN;\n1.1.9.0\/24 CN;\n1.1.10.0\/23 CN;\n......<\/code><\/pre>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-6366d857-3d71-4dde-82e2-e65ee19e9861\" href=\"https:\/\/opshub.com.cn\/wp-content\/uploads\/2026\/01\/cn.conf\">cn<\/a><a href=\"https:\/\/opshub.com.cn\/wp-content\/uploads\/2026\/01\/cn.conf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-6366d857-3d71-4dde-82e2-e65ee19e9861\">Download<\/a><\/div>\n\n\n\n<p>vlmcsd-x86-musl-static-threads\u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/Wind4\/vlmcsd\/releases\/download\/svn1113\/binaries.tar.gz\">https:\/\/github.com\/Wind4\/vlmcsd\/releases\/download\/svn1113\/binaries.tar.gz<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u65b0\u5efa\u9879\u76ee\u6587\u4ef6\u5939 \u6587\u4ef6\u5939\u7ed3\u6784\uff1a docker-compose.yml: Dockerfile\u5185\u5bb9\uff1a nginx\/conf.d\/vlmcsd.conf: nginx\/conf.d\/cn.conf: vlmcsd-x86-musl-static-threads\u4e0b\u8f7d\u5730\u5740\uff1a https:\/\/github.com\/Wind4\/vlmcsd\/releases\/download\/svn1113\/binaries.tar.gz<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-458","post","type-post","status-publish","format-standard","hentry","category-dockerkubernetes"],"_links":{"self":[{"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=458"}],"version-history":[{"count":3,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/458\/revisions"}],"predecessor-version":[{"id":612,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/458\/revisions\/612"}],"wp:attachment":[{"href":"https:\/\/opshub.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opshub.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}