
理解容器之间的连通性 - 每天5分钟玩转 Docker 容器技术(34)
<p>通过前面小节的实践,当前 docker host 的网络拓扑结构如下图所示,今天我们将讨论这几个容器之间的连通性。</p> <p><img src="http://static.51tbox.com/static/2024-12-22/col/c9460ed56fb60cb8a50a1b1bd1103e27/0add50...
<p>通过前面小节的实践,当前 docker host 的网络拓扑结构如下图所示,今天我们将讨论这几个容器之间的连通性。</p> <p><img src="http://static.51tbox.com/static/2024-12-22/col/c9460ed56fb60cb8a50a1b1bd1103e27/0add50...
<p>除了 none, host, bridge 这三个自动创建的网络,用户也可以根据业务需要创建 user-defined 网络。</p> <p>Docker 提供三种 user-defined 网络驱动:bridge, overlay 和 macvlan。overlay 和 macvlan 用于创建跨主机的网络,我们后面有章节单独讨论。&...
<p>上一节我们讨论了 none 和 host 类型的容器网络,本节学习应用最广泛也是默认的 bridge 网络。</p> <p>Docker 安装时会创建一个 命名为 docker0 的 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0 上。</p> <p><img...
<p>本章开始讨论 Docker 网络。</p> <p>我们会首先学习 Docker 提供的几种原生网络,以及如何创建自定义网络。然后探讨容器之间如何通信,以及容器与外界如何交互。</p> <p>Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,本章重点讨论前一种。对于更为复杂的...
<p>为了更好地理解容器的特性,本节我们将讨论容器的底层实现技术。<br /> cgroup 和 namespace 是最重要的两种技术。cgroup 实现资源限额, namespace 实现资源隔离。</p> <h4>cgroup {#cgroup}</h4> <p>cgroup 全称 Control G...
<p>前面学习了如何限制容器对内存和CPU的使用,本节我们来看 Block IO。</p> <p>Block IO 是另一种可以限制容器使用的资源。Block IO 指的是磁盘的读写,docker 可通过设置权重、限制 bps 和 iops 的方式控制容器读写磁盘的带宽,下面分别讨论。</p> <p>注:目前 Bloc...
<p>上节学习了如何限制容器对内存的使用,本节我们来看CPU。</p> <p>默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。</p> <p>Docker 可以通过 <code>-c</code> 或 <code>--cpu-shares</code&g...
<p>一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能。</p> <h4>内存限额 {#-}<...
<p>前面我们已经讨论了容器的各种操作,对容器的生命周期有了大致的理解,下面这张状态机很好地总结了容器各种状态之间是如何转换的。</p> <p><img src="http://static.51tbox.com/static/2024-12-22/col/8d1c69bb918aa362066afddc7191c294/8c...
<p>前面讨论了如何运行容器,本节学习容器的其他常用操作。</p> <h3>stop/start/restart 容器</h3> <p>通过 docker stop 可以停止运行的容器。</p> <p><img src="http://static.51tbox.com/stat...