容器如何访问外部世界?- 每天5分钟玩转 Docker 容器技术(36)
<p>前面我们已经解决了容器间通信的问题,接下来讨论容器如何与外部世界通信。这里涉及两个方向:</p> <p><strong>容器访问外部世界</strong></p> <p><strong>外部世界访问容器</strong></p> <h1>容器...
51工具盒子
<p>前面我们已经解决了容器间通信的问题,接下来讨论容器如何与外部世界通信。这里涉及两个方向:</p> <p><strong>容器访问外部世界</strong></p> <p><strong>外部世界访问容器</strong></p> <h1>容器...
<p>容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信。</p> <h4>IP 通信</h4> <p>从上一节的例子可以得出这样一个结论:两个容器要能通信,必须要有属于同一个网络的网卡。</p> <p>满足这个条件后,容器就可以通过 IP 交互了。具体...
<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>内存限额 {#-}<...