{"id":32,"date":"2026-04-25T22:49:14","date_gmt":"2026-04-25T14:49:14","guid":{"rendered":"https:\/\/jsbmw.cn\/?p=32"},"modified":"2026-04-25T22:49:14","modified_gmt":"2026-04-25T14:49:14","slug":"2026%e6%9c%80%e6%96%b0%e4%bf%9d%e5%a7%86%e7%ba%a7%ef%bc%9a%e9%9d%92%e9%be%99%e9%9d%a2%e6%9d%bfdocker%e9%83%a8%e7%bd%b2%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%ef%bc%8c%e9%9b%b6%e5%9f%ba%e7%a1%80%e6%89%8b","status":"publish","type":"post","link":"http:\/\/jsbmw.cn\/index.php\/2026\/04\/25\/2026%e6%9c%80%e6%96%b0%e4%bf%9d%e5%a7%86%e7%ba%a7%ef%bc%9a%e9%9d%92%e9%be%99%e9%9d%a2%e6%9d%bfdocker%e9%83%a8%e7%bd%b2%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%ef%bc%8c%e9%9b%b6%e5%9f%ba%e7%a1%80%e6%89%8b\/","title":{"rendered":"2026\u6700\u65b0\u4fdd\u59c6\u7ea7\uff1a\u9752\u9f99\u9762\u677fDocker\u90e8\u7f72\u5b9a\u65f6\u4efb\u52a1\uff0c\u96f6\u57fa\u7840\u624b\u628a\u624b\u6559\u7a0b"},"content":{"rendered":"<p>## \u524d\u8a00<\/p>\n<p>\u9752\u9f99\u9762\u677f\u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u5b9a\u65f6\u4efb\u52a1\u7ba1\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u81ea\u52a8\u6267\u884c\u5404\u79cd\u5b9a\u65f6\u811a\u672c\u2014\u2014\u7b7e\u5230\u3001\u9886\u5238\u3001\u63a8\u9001\u6d88\u606f\uff0c\u5168\u81ea\u52a8\u8fd0\u884c\uff01\u672c\u6559\u7a0b\u7528Docker\u4e00\u952e\u90e8\u7f72\uff0c\u96f6\u57fa\u7840\u4e5f\u80fd\u641e\u5b9a\u3002<\/p>\n<p>## \u4e00\u3001Docker\u73af\u5883\u51c6\u5907<\/p>\n<p>### 1.1 \u5b89\u88c5Docker<\/p>\n<p>Linux\u4e00\u952e\u5b89\u88c5\uff1a<\/p>\n<p>curl -fsSL https:\/\/get.docker.com | sh<br \/>\nsudo systemctl start docker<br \/>\nsudo systemctl enable docker<\/p>\n<p>Windows\/Mac\u5b89\u88c5Docker Desktop\uff1ahttps:\/\/www.docker.com\/products\/docker-desktop\/<\/p>\n<p>### 1.2 \u914d\u7f6e\u56fd\u5185\u955c\u50cf\u52a0\u901f<\/p>\n<p>Docker Desktop \u2192 Settings \u2192 Docker Engine\uff1a<\/p>\n<p>{<br \/>\n  &#8220;registry-mirrors&#8221;: [<br \/>\n    &#8220;https:\/\/docker.1panel.live&#8221;,<br \/>\n    &#8220;https:\/\/hub.rat.dev&#8221;,<br \/>\n    &#8220;https:\/\/docker.m.daocloud.io&#8221;<br \/>\n  ]<br \/>\n}<\/p>\n<p>## \u4e8c\u3001\u90e8\u7f72\u9752\u9f99\u9762\u677f<\/p>\n<p>### \u65b9\u5f0f1\uff1aDocker Run\uff08\u6700\u7b80\uff09<\/p>\n<p>docker run -dit   -v $PWD\/ql\/data:\/ql\/data   -p 5700:5700   -e QlBaseUrl=&#8221;\/&#8221;   &#8211;name qinglong   &#8211;restart unless-stopped   whyour\/qinglong:latest<\/p>\n<p>### \u65b9\u5f0f2\uff1aDocker Compose\uff08\u63a8\u8350\uff09<\/p>\n<p>\u521b\u5efa docker-compose.yml\uff1a<\/p>\n<p>version: &#8216;2&#8217;<br \/>\nservices:<br \/>\n  qinglong:<br \/>\n    image: whyour\/qinglong:latest<br \/>\n    container_name: qinglong<br \/>\n    volumes:<br \/>\n      &#8211; .\/data:\/ql\/data<br \/>\n    ports:<br \/>\n      &#8211; &#8220;5700:5700&#8221;<br \/>\n    environment:<br \/>\n      QlBaseUrl: &#8216;\/&#8217;<br \/>\n    restart: unless-stopped<\/p>\n<p>\u542f\u52a8\uff1adocker compose up -d<\/p>\n<p>## \u4e09\u3001\u521d\u59cb\u5316\u9752\u9f99\u9762\u677f<\/p>\n<p>1. \u6d4f\u89c8\u5668\u8bbf\u95ee http:\/\/IP:5700<br \/>\n2. \u8bbe\u7f6e\u7ba1\u7406\u5458\u8d26\u53f7\u5bc6\u7801<br \/>\n3. \u9009\u62e9\u901a\u77e5\u65b9\u5f0f\uff08\u53ef\u8df3\u8fc7\uff09<\/p>\n<p>## \u56db\u3001\u6dfb\u52a0\u5b9a\u65f6\u4efb\u52a1<\/p>\n<p>1. \u767b\u5f55\u540e\u53f0 \u2192 \u5b9a\u65f6\u4efb\u52a1 \u2192 \u6dfb\u52a0\u4efb\u52a1<br \/>\n2. \u8f93\u5165\u4efb\u52a1\u540d\u79f0<br \/>\n3. \u7c98\u8d34\u811a\u672c\u547d\u4ee4<br \/>\n4. \u8bbe\u7f6ecron\u8868\u8fbe\u5f0f\uff08\u5982 0 8 * * * \u8868\u793a\u6bcf\u59298\u70b9\u6267\u884c\uff09<br \/>\n5. \u542f\u7528\u4efb\u52a1<\/p>\n<p>## \u4e94\u3001\u5b89\u88c5\u4f9d\u8d56<\/p>\n<p>\u90e8\u5206\u811a\u672c\u9700\u8981\u989d\u5916\u4f9d\u8d56\uff0c\u5728\u9762\u677f\u4e2d\u64cd\u4f5c\uff1a<\/p>\n<p>Python\u4f9d\u8d56\uff1a\u5728\u4f9d\u8d56\u7ba1\u7406\u4e2d\u641c\u7d22\u5b89\u88c5\uff0c\u6216\u6267\u884c\uff1a<br \/>\ndocker exec -it qinglong pip3 install \u5305\u540d<\/p>\n<p>Node.js\u4f9d\u8d56\uff1a<br \/>\ndocker exec -it qinglong pnpm install \u5305\u540d<\/p>\n<p>## \u516d\u3001\u5e38\u89c1\u62a5\u9519\u89e3\u51b3<\/p>\n<p>| \u62a5\u9519 | \u539f\u56e0 | \u89e3\u51b3\u65b9\u6848 |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;|&#8212;&#8212;&#8212;|<br \/>\n| 5700\u7aef\u53e3\u65e0\u6cd5\u8bbf\u95ee | \u9632\u706b\u5899\u672a\u653e\u884c | \u5f00\u653e5700\u7aef\u53e3 |<br \/>\n| Cannot find module | Node\u4f9d\u8d56\u7f3a\u5931 | docker exec -it qinglong pnpm install xxx |<br \/>\n| No module named | Python\u4f9d\u8d56\u7f3a\u5931 | docker exec -it qinglong pip3 install xxx |<br \/>\n| \u767b\u5f55\u88ab\u9501\u5b9a | \u591a\u6b21\u8f93\u9519\u5bc6\u7801 | docker exec -it qinglong ql resetlet |<br \/>\n| \u767d\u5c4f\u6216502 | \u5bb9\u5668\u672a\u5b8c\u5168\u542f\u52a8 | \u7b49\u5f851-2\u5206\u949f\u6216docker restart qinglong |<br \/>\n| \u5bb9\u5668\u81ea\u52a8\u505c\u6b62 | \u5185\u5b58\u4e0d\u8db3 | \u81f3\u5c11\u4fdd\u8bc12GB\u53ef\u7528\u5185\u5b58 |<\/p>\n<p>## \u4e03\u3001\u907f\u5751\u603b\u7ed3<\/p>\n<p>1. \u6570\u636e\u76ee\u5f55\u4e00\u5b9a\u8981\u6302\u8f7d\uff0c\u4e0d\u7136\u5bb9\u5668\u91cd\u5efa\u6570\u636e\u5168\u4e22<br \/>\n2. \u5148\u5b89\u88c5\u597d\u4f9d\u8d56\u518d\u8dd1\u811a\u672c\uff0c\u4e0d\u7136\u5168\u62a5\u9519<br \/>\n3. \u5bc6\u7801\u522b\u592a\u7b80\u5355\uff0c\u5bb9\u6613\u88ab\u626b\u5230<br \/>\n4. \u5b9a\u65f6\u4efb\u52a1\u4e0d\u8981\u8bbe\u7f6e\u592a\u9891\u7e41\uff0c\u907f\u514d\u89e6\u53d1\u9650\u5236<br \/>\n5. \u5efa\u8bae\u7528Docker Compose\u90e8\u7f72\uff0c\u65b9\u4fbf\u7ba1\u7406<\/p>\n<p>\u672c\u6559\u7a0b\u7531\u6280\u672f\u4fdd\u59c6\u7f51\u539f\u521b\uff0c\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>## \u524d\u8a00 \u9752\u9f99\u9762\u677f\u662f\u4e00\u6b3e\u5f00\u6e90\u7684\u5b9a\u65f6\u4efb\u52a1\u7ba1\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u81ea\u52a8\u6267\u884c\u5404\u79cd\u5b9a\u65f6\u811a\u672c\u2014\u2014\u7b7e\u5230\u3001\u9886\u5238\u3001\u63a8\u9001\u6d88\u606f\uff0c\u5168\u81ea\u52a8\u8fd0\u884c &hellip; <a href=\"http:\/\/jsbmw.cn\/index.php\/2026\/04\/25\/2026%e6%9c%80%e6%96%b0%e4%bf%9d%e5%a7%86%e7%ba%a7%ef%bc%9a%e9%9d%92%e9%be%99%e9%9d%a2%e6%9d%bfdocker%e9%83%a8%e7%bd%b2%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%ef%bc%8c%e9%9b%b6%e5%9f%ba%e7%a1%80%e6%89%8b\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">2026\u6700\u65b0\u4fdd\u59c6\u7ea7\uff1a\u9752\u9f99\u9762\u677fDocker\u90e8\u7f72\u5b9a\u65f6\u4efb\u52a1\uff0c\u96f6\u57fa\u7840\u624b\u628a\u624b\u6559\u7a0b<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":1,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":33,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/posts\/32\/revisions\/33"}],"wp:attachment":[{"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/jsbmw.cn\/index.php\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}