💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 容器互联 如果你之前有 `Docker` 使用经验,你可能已经习惯了使用 `--link` 参数来使容器互联。 随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 `--link` 参数。 ### 新建网络 下面先创建一个新的 Docker 网络。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker network create </span><span class="pun">-</span><span class="pln">d bridge my</span><span class="pun">-</span><span class="pln">net</span></code></li></ol> ``` `-d` 参数指定 Docker 网络类型,有 `bridge``overlay`。其中 `overlay` 网络类型用于 [Swarm mode](%24swarm_mode),在本小节中你可以忽略它。 ### 连接容器 运行一个容器并连接到新建的 `my-net` 网络 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker run </span><span class="pun">-</span><span class="pln">it </span><span class="pun">--</span><span class="pln">rm </span><span class="pun">--</span><span class="pln">name busybox1 </span><span class="pun">--</span><span class="pln">network my</span><span class="pun">-</span><span class="pln">net busybox sh</span></code></li></ol> ``` 打开新的终端,再运行一个容器并加入到 `my-net` 网络 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker run </span><span class="pun">-</span><span class="pln">it </span><span class="pun">--</span><span class="pln">rm </span><span class="pun">--</span><span class="pln">name busybox2 </span><span class="pun">--</span><span class="pln">network my</span><span class="pun">-</span><span class="pln">net busybox sh</span></code></li></ol> ``` 再打开一个新的终端查看容器信息 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker container ls</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">b47060aca56b busybox </span><span class="str">"sh"</span><span class="pln"> </span><span class="lit">11</span><span class="pln"> minutes ago </span><span class="typ">Up</span><span class="pln"> </span><span class="lit">11</span><span class="pln"> minutes busybox2</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">8720575823ec</span><span class="pln"> busybox </span><span class="str">"sh"</span><span class="pln"> </span><span class="lit">16</span><span class="pln"> minutes ago </span><span class="typ">Up</span><span class="pln"> </span><span class="lit">16</span><span class="pln"> minutes busybox1</span></code></li> </ol> ``` 下面通过 `ping` 来证明 `busybox1` 容器和 `busybox2` 容器建立了互联关系。 在 `busybox1` 容器输入以下命令 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln"> </span><span class="com"># ping busybox2</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">PING busybox2 </span><span class="pun">(</span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.3</span><span class="pun">):</span><span class="pln"> </span><span class="lit">56</span><span class="pln"> data bytes</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">64</span><span class="pln"> bytes from </span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.3</span><span class="pun">:</span><span class="pln"> seq</span><span class="pun">=</span><span class="lit">0</span><span class="pln"> ttl</span><span class="pun">=</span><span class="lit">64</span><span class="pln"> time</span><span class="pun">=</span><span class="lit">0.072</span><span class="pln"> ms</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">64</span><span class="pln"> bytes from </span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.3</span><span class="pun">:</span><span class="pln"> seq</span><span class="pun">=</span><span class="lit">1</span><span class="pln"> ttl</span><span class="pun">=</span><span class="lit">64</span><span class="pln"> time</span><span class="pun">=</span><span class="lit">0.118</span><span class="pln"> ms</span></code></li> </ol> ``` 用 ping 来测试连接 `busybox2` 容器,它会解析成 `172.19.0.3`。 同理在 `busybox2` 容器执行 `ping busybox1`,也会成功连接到。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">/</span><span class="pln"> </span><span class="com"># ping busybox1</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">PING busybox1 </span><span class="pun">(</span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.2</span><span class="pun">):</span><span class="pln"> </span><span class="lit">56</span><span class="pln"> data bytes</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">64</span><span class="pln"> bytes from </span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.2</span><span class="pun">:</span><span class="pln"> seq</span><span class="pun">=</span><span class="lit">0</span><span class="pln"> ttl</span><span class="pun">=</span><span class="lit">64</span><span class="pln"> time</span><span class="pun">=</span><span class="lit">0.064</span><span class="pln"> ms</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">64</span><span class="pln"> bytes from </span><span class="lit">172.19</span><span class="pun">.</span><span class="lit">0.2</span><span class="pun">:</span><span class="pln"> seq</span><span class="pun">=</span><span class="lit">1</span><span class="pln"> ttl</span><span class="pun">=</span><span class="lit">64</span><span class="pln"> time</span><span class="pun">=</span><span class="lit">0.143</span><span class="pln"> ms</span></code></li> </ol> ``` 这样,`busybox1` 容器和 `busybox2` 容器建立了互联关系。 ### Docker Compose 如果你有多个容器之间需要互相连接,推荐使用 [Docker Compose](%24compose)。