<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>数据工程 Blog</title>
        <link>https://mqjd.github.io/data-engineering/blog</link>
        <description>数据工程 Blog</description>
        <lastBuildDate>Thu, 18 Sep 2025 14:58:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>cn</language>
        <item>
            <title><![CDATA[What is Data Engineering?]]></title>
            <link>https://mqjd.github.io/data-engineering/blog/what-is-data-engieering</link>
            <guid>https://mqjd.github.io/data-engineering/blog/what-is-data-engieering</guid>
            <pubDate>Thu, 18 Sep 2025 14:58:08 GMT</pubDate>
            <content:encoded><![CDATA[<iframe width="560" height="315" src="https://www.youtube.com/embed/qWru-b6m030?si=q90v54YMeP8lBi7O" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"></iframe>]]></content:encoded>
            <category>Data</category>
        </item>
        <item>
            <title><![CDATA[Docker On Windows]]></title>
            <link>https://mqjd.github.io/data-engineering/blog/docker-on-windows</link>
            <guid>https://mqjd.github.io/data-engineering/blog/docker-on-windows</guid>
            <pubDate>Thu, 18 Sep 2025 14:58:08 GMT</pubDate>
            <description><![CDATA[安装wsl]]></description>
            <content:encoded><![CDATA[<h2 class="anchor anchorWithStickyNavbar_LWe7" id="安装wsl">安装wsl<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85wsl" class="hash-link" aria-label="Direct link to 安装wsl" title="Direct link to 安装wsl">​</a></h2>
<p>此步骤网上资源很多，请自行百度或Google完成</p>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="准备工作">准备工作<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C" class="hash-link" aria-label="Direct link to 准备工作" title="Direct link to 准备工作">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="配置sudoers">配置sudoers<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E9%85%8D%E7%BD%AEsudoers" class="hash-link" aria-label="Direct link to 配置sudoers" title="Direct link to 配置sudoers">​</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">echo "$USER ALL=NOPASSWD: ALL" &gt; "/etc/sudoers.d/$USER"</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://mqjd.github.io/data-engineering/blog/docker-on-windows#%E6%9B%B4%E6%8D%A2%E9%95%9C%E5%83%8F%E4%B8%BA%E9%98%BF%E9%87%8C%E4%BA%91%E9%95%9C%E5%83%8F" class="hash-link" aria-label="Direct link to 更换镜像为阿里云镜像" title="Direct link to 更换镜像为阿里云镜像">​</a></h3>
<p>此步骤主要国内访问官方镜像源速度太慢，可以根据自身需求确认是否更换<a href="https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.344d1b11eKKtHG" target="_blank" rel="noopener noreferrer">阿里云镜像</a>或者其他镜像</p>
<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">sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo echo "" &gt; /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse" &gt;&gt; /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse" &gt;&gt; /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse" &gt;&gt; /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse" &gt;&gt; /etc/apt/sources.list</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo sudo apt-get update</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://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E7%BB%84%E4%BB%B6" class="hash-link" aria-label="Direct link to 安装依赖组件" title="Direct link to 安装依赖组件">​</a></h3>
<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 function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-y</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">curl</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>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="安装docker">安装docker<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85docker" class="hash-link" aria-label="Direct link to 安装docker" title="Direct link to 安装docker">​</a></h2>
<p>下面的安装脚来自<a href="https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh" target="_blank" rel="noopener noreferrer">https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh</a></p>
<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 function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt-get</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-y</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> apt-transport-https ca-certificates </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> gnupg-agent software-properties-common</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-fsSL</span><span class="token plain"> https://download.docker.com/linux/ubuntu/gpg </span><span class="token operator" style="color:#393A34">|</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> apt-key </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> -</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> apt-key fingerprint 0EBFCD88</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> add-apt-repository </span><span class="token string" style="color:#e3116c">"deb [arch=amd64] https://download.docker.com/linux/ubuntu </span><span class="token string variable" style="color:#36acaa">$(</span><span class="token string variable" style="color:#36acaa">lsb_release </span><span class="token string variable parameter variable" style="color:#36acaa">-cs</span><span class="token string variable" style="color:#36acaa">)</span><span class="token string" style="color:#e3116c"> stable"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt-get</span><span class="token plain"> update</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt-get</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-y</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> docker-ce docker-ce-cli containerd.io</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt-get</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-y</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> docker-compose-plugin</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> gpasswd </span><span class="token parameter variable" style="color:#36acaa">-a</span><span class="token plain"> </span><span class="token environment constant" style="color:#36acaa">$USER</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">usermod</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-aG</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> </span><span class="token environment constant" style="color:#36acaa">$USER</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>
<p>启动docker</p>
<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 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 function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">service</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> start</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"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">service</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> status</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>
<p>测试</p>
<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 comment" style="color:#999988;font-style:italic"># pull nginx</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> pull nginx</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"># start nginx</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> run </span><span class="token parameter variable" style="color:#36acaa">-d</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--name</span><span class="token plain"> nginx </span><span class="token parameter variable" style="color:#36acaa">-p</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">8080</span><span class="token plain">:80 nginx</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"># 容器IP获取</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> inspect </span><span class="token parameter variable" style="color:#36acaa">-f</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'</span><span class="token plain"> 容器名称或ID</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 function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">172.18</span><span class="token plain">.0.1:8080</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>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="安装-docker-compose">安装 docker-compose<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85-docker-compose" class="hash-link" aria-label="Direct link to 安装 docker-compose" title="Direct link to 安装 docker-compose">​</a></h2>
<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 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 function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-L</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-</span><span class="token string variable" style="color:#36acaa">$(</span><span class="token string variable function" style="color:#d73a49">uname</span><span class="token string variable" style="color:#36acaa"> </span><span class="token string variable parameter variable" style="color:#36acaa">-s</span><span class="token string variable" style="color:#36acaa">)</span><span class="token string" style="color:#e3116c">-</span><span class="token string variable" style="color:#36acaa">$(</span><span class="token string variable function" style="color:#d73a49">uname</span><span class="token string variable" style="color:#36acaa"> </span><span class="token string variable parameter variable" style="color:#36acaa">-m</span><span class="token string variable" style="color:#36acaa">)</span><span class="token string" style="color:#e3116c">"</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-o</span><span class="token plain"> /usr/local/bin/docker-compose</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"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">chmod</span><span class="token plain"> +x /usr/local/bin/docker-compose</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"></span><span class="token function" style="color:#d73a49">docker-compose</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--version</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>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="在windows使用docker">在windows使用docker<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%9C%A8windows%E4%BD%BF%E7%94%A8docker" class="hash-link" aria-label="Direct link to 在windows使用docker" title="Direct link to 在windows使用docker">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="安装choco">安装choco<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85choco" class="hash-link" aria-label="Direct link to 安装choco" title="Direct link to 安装choco">​</a></h3>
<p><a href="https://chocolatey.org/install" target="_blank" rel="noopener noreferrer">官方教程</a></p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="安装docker-cli">安装docker-cli<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%AE%89%E8%A3%85docker-cli" class="hash-link" aria-label="Direct link to 安装docker-cli" title="Direct link to 安装docker-cli">​</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">choco install docker-cli</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-tcp访问">配置Docker TCP访问<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E9%85%8D%E7%BD%AEdocker-tcp%E8%AE%BF%E9%97%AE" class="hash-link" aria-label="Direct link to 配置Docker TCP访问" title="Direct link to 配置Docker TCP访问">​</a></h3>
<ul>
<li>
<p>修改docker.service</p>
<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 function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">vi</span><span class="token plain"> /lib/systemd/system/docker.service</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>
</li>
<li>
<p>修改ExecStart参数增加 "-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"</p>
<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 assign-left variable" style="color:#36acaa">ExecStart</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/usr/bin/dockerd </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> fd:// </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> tcp://0.0.0.0:2375 </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> unix:///var/run/docker.sock  </span><span class="token parameter variable" style="color:#36acaa">--containerd</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/run/containerd/containerd.sock</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>
</li>
<li>
<p>重新加载并启动</p>
<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 function" style="color:#d73a49">sudo</span><span class="token plain"> systemctl daemon-reload</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">service</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">docker</span><span class="token plain"> start</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>
</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="在windows访问container">在windows访问container<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%9C%A8windows%E8%AE%BF%E9%97%AEcontainer" class="hash-link" aria-label="Direct link to 在windows访问container" title="Direct link to 在windows访问container">​</a></h2>
<p>需要在window和wsl分别设置允许路由转发</p>
<h3 class="anchor anchorWithStickyNavbar_LWe7" id="wsl">WSL<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#wsl" class="hash-link" aria-label="Direct link to WSL" title="Direct link to WSL">​</a></h3>
<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 function" style="color:#d73a49">sudo</span><span class="token plain"> iptables </span><span class="token parameter variable" style="color:#36acaa">-P</span><span class="token plain"> FORWARD ACCEPT</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="windows">Windows<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#windows" class="hash-link" aria-label="Direct link to Windows" title="Direct link to Windows">​</a></h3>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="启动路由服务">启动路由服务<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E5%90%AF%E5%8A%A8%E8%B7%AF%E7%94%B1%E6%9C%8D%E5%8A%A1" class="hash-link" aria-label="Direct link to 启动路由服务" title="Direct link to 启动路由服务">​</a></h4>
<p>找到任务管理器 --&gt; 服务 --&gt; 打开服务 --&gt; Routing and Remote Access --&gt; <strong>启动</strong>
<strong>或者</strong>使用<strong>管理员</strong>执行以下命令</p>
<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">sc start RemoteAccess</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>
<h4 class="anchor anchorWithStickyNavbar_LWe7" id="添加路由">添加路由<a href="https://mqjd.github.io/data-engineering/blog/docker-on-windows#%E6%B7%BB%E5%8A%A0%E8%B7%AF%E7%94%B1" class="hash-link" aria-label="Direct link to 添加路由" title="Direct link to 添加路由">​</a></h4>
<blockquote>
<p>需要管理员权限执行，更换CONTAINER_IP、WSL_IP 为自己的</p>
</blockquote>
<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">route add -P CONTAINER_IP mask 255.255.255.0 WSL_IP</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:encoded>
            <category>Docker</category>
        </item>
    </channel>
</rss>