<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://your-docusaurus-site.example.com/blog</id>
    <title>学习文章的记录 Blog</title>
    <updated>2024-05-11T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://your-docusaurus-site.example.com/blog"/>
    <subtitle>学习文章的记录 Blog</subtitle>
    <icon>https://your-docusaurus-site.example.com/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[mybatis-plus速查]]></title>
        <id>https://your-docusaurus-site.example.com/blog/mybatis</id>
        <link href="https://your-docusaurus-site.example.com/blog/mybatis"/>
        <updated>2024-05-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[mybatis-plus速查]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="xml-原生转义">xml 原生转义<a href="https://your-docusaurus-site.example.com/blog/mybatis#xml-%E5%8E%9F%E7%94%9F%E8%BD%AC%E4%B9%89" class="hash-link" aria-label="Direct link to xml 原生转义" title="Direct link to xml 原生转义">​</a></h3>
<table><thead><tr><th style="text-align:center">字符名称</th><th style="text-align:center">sql符号</th><th style="text-align:left">转义字符</th></tr></thead><tbody><tr><td style="text-align:center">大于号</td><td style="text-align:center">&gt;</td><td style="text-align:left">&amp;gt;</td></tr><tr><td style="text-align:center">小于号</td><td style="text-align:center">&lt;</td><td style="text-align:left">&amp;lt;</td></tr><tr><td style="text-align:center">不等于</td><td style="text-align:center">&lt;&gt;</td><td style="text-align:left">&amp;lt;&gt;</td></tr><tr><td style="text-align:center">大于等于号</td><td style="text-align:center">&gt;=</td><td style="text-align:left">&amp;gt;=</td></tr><tr><td style="text-align:center">小于等于号</td><td style="text-align:center">&lt;=</td><td style="text-align:left">&amp;lt;=</td></tr><tr><td style="text-align:center">与</td><td style="text-align:center">&amp;</td><td style="text-align:left">&amp;amp;</td></tr><tr><td style="text-align:center">单引号</td><td style="text-align:center">'</td><td style="text-align:left">&amp;apos;</td></tr><tr><td style="text-align:center">双引号</td><td style="text-align:center">"</td><td style="text-align:left">&amp;quot;</td></tr></tbody></table>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="mybatis，java" term="mybatis，java"/>
        <category label="ORM" term="ORM"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[linux常用命令]]></title>
        <id>https://your-docusaurus-site.example.com/blog/command</id>
        <link href="https://your-docusaurus-site.example.com/blog/command"/>
        <updated>2022-11-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[linux常用命令]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="杀端口号命令">杀端口号命令<a href="https://your-docusaurus-site.example.com/blog/command#%E6%9D%80%E7%AB%AF%E5%8F%A3%E5%8F%B7%E5%91%BD%E4%BB%A4" class="hash-link" aria-label="Direct link to 杀端口号命令" title="Direct link to 杀端口号命令">​</a></h3>
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">centos</li><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">windows</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">#放端口</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">firewall-cmd </span><span class="token operator" style="color:#393A34">--</span><span class="token plain">zone=public </span><span class="token operator" style="color:#393A34">--</span><span class="token function" style="color:#d73a49">add-port</span><span class="token plain">=5121/tcp </span><span class="token operator" style="color:#393A34">--</span><span class="token plain">permanent</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">firewall-cmd </span><span class="token operator" style="color:#393A34">--</span><span class="token plain">reload</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">#杀端口</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo </span><span class="token function" style="color:#d73a49">kill</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">9 $</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">lsof </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">i:端口号 </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">t</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><div role="tabpanel" class="tabItem_Ymn6"><div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">#杀端口</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">netstat </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">ano </span><span class="token punctuation" style="color:#393A34">|</span><span class="token plain"> findstr 端口号</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">taskkill </span><span class="token operator" style="color:#393A34">/</span><span class="token plain">f </span><span class="token operator" style="color:#393A34">/</span><span class="token plain">pid 进程号</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="git">git<a href="https://your-docusaurus-site.example.com/blog/command#git" class="hash-link" aria-label="Direct link to git" title="Direct link to git">​</a></h3>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 强拉远程分支覆盖</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git fetch </span><span class="token operator" style="color:#393A34">--</span><span class="token plain">all &amp;&amp; git reset </span><span class="token operator" style="color:#393A34">--</span><span class="token plain">hard origin/master &amp;&amp; git pull</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="linux" term="linux"/>
        <category label="command" term="command"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Rancher滚动无感知切换镜像]]></title>
        <id>https://your-docusaurus-site.example.com/blog/distributed</id>
        <link href="https://your-docusaurus-site.example.com/blog/distributed"/>
        <updated>2022-11-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Rancher滚动无感知切换镜像]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="springboot-引入依赖">springboot 引入依赖<a href="https://your-docusaurus-site.example.com/blog/distributed#springboot-%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96" class="hash-link" aria-label="Direct link to springboot 引入依赖" title="Direct link to springboot 引入依赖">​</a></h3>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">org.springframework.boot</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">spring-boot-starter-actuator</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="修改配置暴露端点">修改配置暴露端点<a href="https://your-docusaurus-site.example.com/blog/distributed#%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%9A%B4%E9%9C%B2%E7%AB%AF%E7%82%B9" class="hash-link" aria-label="Direct link to 修改配置暴露端点" title="Direct link to 修改配置暴露端点">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">server:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  port: 7878</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  shutdown: graceful</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">liteflow:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  rule-source: config/**/*.el.xml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Spring</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">spring:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  mvc:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    async:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      request-timeout: 30000</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  application:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    # 应用名称</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    name: xxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  main:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    allow-bean-definition-overriding: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  profiles:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    # 环境配置</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    active: @spring.profiles.active@</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  lifecycle:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    # 优雅下线超时时间</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    timeout-per-shutdown-phase: 5m</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 暴露 shutdown 接口</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">management:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  endpoint:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    health:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      probes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        enabled: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      # 启用 shutdown 端点</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    shutdown:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      enabled: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="创建一个端点来从-nacos-主动下线并且停止服务">创建一个端点来从 nacos 主动下线并且停止服务<a href="https://your-docusaurus-site.example.com/blog/distributed#%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%AB%AF%E7%82%B9%E6%9D%A5%E4%BB%8E-nacos-%E4%B8%BB%E5%8A%A8%E4%B8%8B%E7%BA%BF%E5%B9%B6%E4%B8%94%E5%81%9C%E6%AD%A2%E6%9C%8D%E5%8A%A1" class="hash-link" aria-label="Direct link to 创建一个端点来从 nacos 主动下线并且停止服务" title="Direct link to 创建一个端点来从 nacos 主动下线并且停止服务">​</a></h3>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">com</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">alibaba</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">cloud</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">nacos</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">NacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">com</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">alibaba</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">cloud</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">nacos</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">registry</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">NacosRegistration</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">com</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">alibaba</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">cloud</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">nacos</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">registry</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">NacosServiceRegistry</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">lombok</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">extern</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">log4j</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">Log4j2</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">org</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">springframework</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">beans</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">factory</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">annotation</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">Autowired</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">org</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">springframework</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">boot</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">actuate</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">endpoint</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">annotation</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">Endpoint</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">org</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">springframework</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">boot</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">actuate</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">endpoint</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">annotation</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">ReadOperation</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> </span><span class="token import namespace" style="opacity:0.7">org</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">springframework</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import namespace" style="opacity:0.7">stereotype</span><span class="token import namespace punctuation" style="opacity:0.7;color:#393A34">.</span><span class="token import class-name">Component</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token annotation punctuation" style="color:#393A34">@Component</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token annotation punctuation" style="color:#393A34">@Endpoint</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">id </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"deregister"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token annotation punctuation" style="color:#393A34">@Log4j2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">NacosServiceDeregisterEndpoint</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation punctuation" style="color:#393A34">@Autowired</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token class-name">NacosDiscoveryProperties</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation punctuation" style="color:#393A34">@Autowired</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token class-name">NacosRegistration</span><span class="token plain"> nacosRegistration</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation punctuation" style="color:#393A34">@Autowired</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token class-name">NacosServiceRegistry</span><span class="token plain"> nacosServiceRegistry</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">     * 从 nacos 中主动下线，用于 k8s 滚动更新时，提前下线分流流量</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">     *</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">     */</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation punctuation" style="color:#393A34">@ReadOperation</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token class-name">String</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">endpoint</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token class-name">String</span><span class="token plain"> serviceName </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getService</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token class-name">String</span><span class="token plain"> groupName </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getGroup</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token class-name">String</span><span class="token plain"> clusterName </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getClusterName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token class-name">String</span><span class="token plain"> ip </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getIp</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> port </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> nacosDiscoveryProperties</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getPort</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        log</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">info</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"deregister from nacos, serviceName:{}, groupName:{}, clusterName:{}, ip:{}, port:{}"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> serviceName</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> groupName</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> clusterName</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> ip</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> port</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        log</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">error</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"nacos下线成功提示"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 设置服务下线</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        nacosServiceRegistry</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setStatus</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">nacosRegistration</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"DOWN"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"success"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="rancher-配置">rancher 配置<a href="https://your-docusaurus-site.example.com/blog/distributed#rancher-%E9%85%8D%E7%BD%AE" class="hash-link" aria-label="Direct link to rancher 配置" title="Direct link to rancher 配置">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">//设置优雅停机字段</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  terminationGracePeriodSeconds: 600</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">//设置PreStop</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sh -c 'curl http://127.0.0.1:7878/actuator/deregister;sleep 30;curl -X POST http://127.0.0.1:7878/actuator/shutdown;'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">//设置健康检查等探针</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    spec:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      containers:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        - image: xxx.xxx.com/xxx/xxx-xx-xxx:3.3.0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          imagePullPolicy: Always</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          lifecycle:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            preStop:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              exec:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                command:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  - sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  - '-c'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  - &gt;-</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    curl http://127.0.0.1:7878/actuator/deregister;sleep 30;curl -X POST</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    http://127.0.0.1:7878/actuator/shutdown;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          livenessProbe:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            failureThreshold: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            httpGet:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              path: /actuator/health/liveness</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              port: 7878</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              scheme: HTTP</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            initialDelaySeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            periodSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            successThreshold: 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            timeoutSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          name: zdcloud-barcode-web</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          ports:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            - containerPort: 7878</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              name: 7878tcp2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              protocol: TCP</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          readinessProbe:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            failureThreshold: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            httpGet:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              path: /actuator/health/readiness</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              port: 7878</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              scheme: HTTP</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            initialDelaySeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            periodSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            successThreshold: 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            timeoutSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          startupProbe:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            failureThreshold: 30</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            httpGet:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              path: /actuator/health/liveness</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              port: 7878</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              scheme: HTTP</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            initialDelaySeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            periodSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            successThreshold: 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            timeoutSeconds: 10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          terminationMessagePath: /dev/termination-log</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          terminationMessagePolicy: File</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          __active: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          resources: {}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="linux" term="linux"/>
        <category label="Rancher" term="Rancher"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[IntelliJ IDEA 推送镜像到harbor私库]]></title>
        <id>https://your-docusaurus-site.example.com/blog/harbor</id>
        <link href="https://your-docusaurus-site.example.com/blog/harbor"/>
        <updated>2022-09-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[IntelliJ IDEA 推送镜像到harbor私库]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="新增插件">新增插件<a href="https://your-docusaurus-site.example.com/blog/harbor#%E6%96%B0%E5%A2%9E%E6%8F%92%E4%BB%B6" class="hash-link" aria-label="Direct link to 新增插件" title="Direct link to 新增插件">​</a></h3>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.fabric8</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">docker-maven-plugin</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">0.40.2</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dependency</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="配置">配置<a href="https://your-docusaurus-site.example.com/blog/harbor#%E9%85%8D%E7%BD%AE" class="hash-link" aria-label="Direct link to 配置" title="Direct link to 配置">​</a></h3>
<blockquote>
<p>需要一台docker跳板机</p>
</blockquote>
<div class="language-xml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-xml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">build</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">plugins</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">plugin</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">io.fabric8</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">groupId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">docker-maven-plugin</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">artifactId</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">0.40.2</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">version</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">configuration</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token comment" style="color:#999988;font-style:italic">&lt;!--认证配置,用于私有registry认证--&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">authConfig</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">username</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">xxx</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">username</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">password</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">xxx</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">password</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">authConfig</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token comment" style="color:#999988;font-style:italic">&lt;!-- harbor镜像仓库地址--&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">pushRegistry</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">https://harbor.xxx.com</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">pushRegistry</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dockerHost</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">tcp://x.x.x.x:2375</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dockerHost</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">images</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">image</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token comment" style="color:#999988;font-style:italic">&lt;!--推送到私有镜像仓库，镜像名需要添加仓库地址--&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">name</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">harbor.xxx.com/xxxxx/${project.name}:${project.version}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">name</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token comment" style="color:#999988;font-style:italic">&lt;!--定义镜像构建行为--&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">build</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">dockerFileDir</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">${project.basedir}</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">dockerFileDir</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">build</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">image</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">images</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">configuration</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">executions</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">execution</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">id</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">docker-exec</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">id</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token comment" style="color:#999988;font-style:italic">&lt;!-- 绑定mvn install阶段，当执行mvn install时 就会执行docker build 和docker push--&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">phase</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">install</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">phase</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">goals</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">goal</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">build</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">goal</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                    </span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">goal</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain">push</span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">goal</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">goals</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">execution</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">executions</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">plugin</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">plugins</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">build</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="执行">执行<a href="https://your-docusaurus-site.example.com/blog/harbor#%E6%89%A7%E8%A1%8C" class="hash-link" aria-label="Direct link to 执行" title="Direct link to 执行">​</a></h3>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">mvn clean install</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="docker" term="docker"/>
        <category label="harbor" term="harbor"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[使用nvm管理nodeJS]]></title>
        <id>https://your-docusaurus-site.example.com/blog/nvm</id>
        <link href="https://your-docusaurus-site.example.com/blog/nvm"/>
        <updated>2022-02-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[使用nvm管理nodeJS]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="快速开始">快速开始<a href="https://your-docusaurus-site.example.com/blog/nvm#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B" class="hash-link" aria-label="Direct link to 快速开始" title="Direct link to 快速开始">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="下载直通车">下载直通车<a href="https://your-docusaurus-site.example.com/blog/nvm#%E4%B8%8B%E8%BD%BD%E7%9B%B4%E9%80%9A%E8%BD%A6" class="hash-link" aria-label="Direct link to 下载直通车" title="Direct link to 下载直通车">​</a></h3>
<blockquote>
<p>因为本地用的是win10 所以这里用 nvm-windows</p>
</blockquote>
<!-- -->
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">windows</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">linux</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><a href="https://github.com/coreybutler/nvm-windows/releases" target="_blank" rel="noopener noreferrer">https://github.com/coreybutler/nvm-windows/releases</a></p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">https://github.com/nvm-sh/nvm</a></p></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="安装">安装<a href="https://your-docusaurus-site.example.com/blog/nvm#%E5%AE%89%E8%A3%85" class="hash-link" aria-label="Direct link to 安装" title="Direct link to 安装">​</a></h3>
<p>无脑一直下一步至安装完成。</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="安装指定版本">安装指定版本<a href="https://your-docusaurus-site.example.com/blog/nvm#%E5%AE%89%E8%A3%85%E6%8C%87%E5%AE%9A%E7%89%88%E6%9C%AC" class="hash-link" aria-label="Direct link to 安装指定版本" title="Direct link to 安装指定版本">​</a></h3>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">nvm install 14.0.0 // 自定义版本</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="查询安装过的版本">查询安装过的版本<a href="https://your-docusaurus-site.example.com/blog/nvm#%E6%9F%A5%E8%AF%A2%E5%AE%89%E8%A3%85%E8%BF%87%E7%9A%84%E7%89%88%E6%9C%AC" class="hash-link" aria-label="Direct link to 查询安装过的版本" title="Direct link to 查询安装过的版本">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">nvm list </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="切换版本版本">切换版本版本<a href="https://your-docusaurus-site.example.com/blog/nvm#%E5%88%87%E6%8D%A2%E7%89%88%E6%9C%AC%E7%89%88%E6%9C%AC" class="hash-link" aria-label="Direct link to 切换版本版本" title="Direct link to 切换版本版本">​</a></h3>
<blockquote>
<p>不要忘记设置淘宝源</p>
</blockquote>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">nvm use 14.0.0 // 自定义版本</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">npm install -g yarn //安装yarn</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="nodeJS" term="nodeJS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[安全连接Docker的2375端口]]></title>
        <id>https://your-docusaurus-site.example.com/blog/docker</id>
        <link href="https://your-docusaurus-site.example.com/blog/docker"/>
        <updated>2022-02-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[安全连接Docker的2375端口]]></summary>
        <content type="html"><![CDATA[<h3 class="anchor anchorWithStickyNavbar_LWe7" id="创建dockersh文件">创建docker.sh文件<a href="https://your-docusaurus-site.example.com/blog/docker#%E5%88%9B%E5%BB%BAdockersh%E6%96%87%E4%BB%B6" class="hash-link" aria-label="Direct link to 创建docker.sh文件" title="Direct link to 创建docker.sh文件">​</a></h3>
<blockquote>
<p>这里指的是linux服务器,不是本地客户机。</p>
</blockquote>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#!/bin/bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#创建 Docker TLS 证书</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#相关配置信息</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#公网ip</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export SERVER=xxxxx  </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#密码</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export PASSWORD=xxxx  </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#国家 </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export COUNTRY=CN</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#省</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export STATE=xx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#城市</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export CITY=wenzhou</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#组织</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export ORGANIZATION=xxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export ORGANIZATIONAL_UNIT=xxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export EMAIL=xxxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export CA_HOME=/usr/local/ca_tls</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">###开始生成文件###</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "开始生成文件"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#切换到生产密钥的目录</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "创建并切换到生产密钥的目录"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mkdir $CA_HOME</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cd $CA_HOME</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成ca私钥(使用aes256加密)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成ca私钥(使用aes256加密)"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 4096</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成ca证书，填写配置信息</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成ca证书，填写配置信息"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成server证书私钥文件</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成server证书私钥文件"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl genrsa -out server-key.pem 4096</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成server证书请求文件</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成server证书请求文件"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#配置白名单  你使用的是服务器Ip的话,请将前面的DNS换成IP  echo subjectAltName = IP:$SERVER,IP:0.0.0.0 &gt;&gt; extfile.cnf</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "配置白名单"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sh -c  'echo "subjectAltName = IP:'$SERVER',IP:0.0.0.0" &gt;&gt; extfile.cnf'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sh -c  'echo "extendedKeyUsage = serverAuth" &gt;&gt; extfile.cnf'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#使用CA证书及CA密钥以及上面的server证书请求文件进行签发，生成server自签证书</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "使用CA证书及CA密钥以及上面的server证书请求文件进行签发，生成server自签证书"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成client证书RSA私钥文件</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成client证书RSA私钥文件"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl genrsa -out key.pem 4096</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成client证书请求文件</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成client证书请求文件"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl req -subj "/CN=client" -new -key key.pem -out client.csr</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sh -c 'echo extendedKeyUsage=clientAuth &gt;&gt; extfile-client.cnf'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#生成client自签证书（根据上面的client私钥文件、client证书请求文件生成）</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成client自签证书（根据上面的client私钥文件、client证书请求文件生成）"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem  -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem  -extfile extfile-client.cnf</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#更改密钥权限</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "更改密钥权限0400"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">chmod 0400 ca-key.pem key.pem server-key.pem</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#更改密钥权限</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "更改秘钥权限0444"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">chmod 0444 ca.pem server-cert.pem cert.pem</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#删除无用文件</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#rm client.csr server.csr</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#复制需要的文件到docker目录</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "复制需要的文件到docker目录"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cp server-*.pem  /etc/docker/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cp ca.pem /etc/docker/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "生成文件完成"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">###生成结束###</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#vim /lib/systemd/system/docker.service</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#整行替换成ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#line=`sed -n '/ExecStart/=' /lib/systemd/system/docker.service`</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#change="ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/usr/local/ca/ca.pem --tlscert=/usr/local/ca/server-cert.pem --tlskey=/usr/local/ca/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock/"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#sed -e ''$line's/.*$/'$change'' /lib/systemd/system/docker.service</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#systemctl daemon-reload</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#systemctl restart docker</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#复制在客户机中将ca.pem ca-key.pem cert.pem key.pem 放在同一文件夹</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#打开idea配置安全链接</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="运行脚本">运行脚本<a href="https://your-docusaurus-site.example.com/blog/docker#%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC" class="hash-link" aria-label="Direct link to 运行脚本" title="Direct link to 运行脚本">​</a></h3>
<blockquote>
<p>先cd到docker.sh所在目录</p>
</blockquote>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sh ./docker.sh</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="修改docker配置">修改docker配置<a href="https://your-docusaurus-site.example.com/blog/docker#%E4%BF%AE%E6%94%B9docker%E9%85%8D%E7%BD%AE" class="hash-link" aria-label="Direct link to 修改docker配置" title="Direct link to 修改docker配置">​</a></h3>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">vim /lib/systemd/system/docker.service</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#找到文件内 ExecStart并且替换成下面的内容</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="配置生效">配置生效<a href="https://your-docusaurus-site.example.com/blog/docker#%E9%85%8D%E7%BD%AE%E7%94%9F%E6%95%88" class="hash-link" aria-label="Direct link to 配置生效" title="Direct link to 配置生效">​</a></h3>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">systemctl daemon-reload</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="重启docker">重启docker<a href="https://your-docusaurus-site.example.com/blog/docker#%E9%87%8D%E5%90%AFdocker" class="hash-link" aria-label="Direct link to 重启docker" title="Direct link to 重启docker">​</a></h3>
<div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">systemctl restart docker</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="服务器上生成全部证书所在路径">服务器上生成全部证书所在路径<a href="https://your-docusaurus-site.example.com/blog/docker#%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%94%9F%E6%88%90%E5%85%A8%E9%83%A8%E8%AF%81%E4%B9%A6%E6%89%80%E5%9C%A8%E8%B7%AF%E5%BE%84" class="hash-link" aria-label="Direct link to 服务器上生成全部证书所在路径" title="Direct link to 服务器上生成全部证书所在路径">​</a></h3>
<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">/usr/local/ca_tls</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="下载证书到本地">下载证书到本地<a href="https://your-docusaurus-site.example.com/blog/docker#%E4%B8%8B%E8%BD%BD%E8%AF%81%E4%B9%A6%E5%88%B0%E6%9C%AC%E5%9C%B0" class="hash-link" aria-label="Direct link to 下载证书到本地" title="Direct link to 下载证书到本地">​</a></h3>
<blockquote>
<p>1.证书已经包含了包括客户端所需要的两个证书以及服务器的证书，下载放入项目备份
2.使用idea连接docker</p>
</blockquote>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="idea连接docker">Idea连接docker<a href="https://your-docusaurus-site.example.com/blog/docker#idea%E8%BF%9E%E6%8E%A5docker" class="hash-link" aria-label="Direct link to Idea连接docker" title="Direct link to Idea连接docker">​</a></h3>
<p><img decoding="async" loading="lazy" src="https://your-docusaurus-site.example.com/assets/images/docker-idea-1778ebe3bf84124354e5117c9c433ba2.png" width="811" height="683" class="img_ev3q"></p>]]></content>
        <author>
            <name>chenweibo</name>
        </author>
        <category label="docker" term="docker"/>
    </entry>
</feed>