随笔分类 -  docker技术

摘要:Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来。与 VxLAN 不同的是,Calico 不对数据包做额外封装,不需要 NAT 和端口映射,扩展性和性能都很好。 与其他容器网络方案相比,Calico 阅读全文
posted @ 2019-06-23 08:18 bwzbk 阅读(786) 评论(0) 推荐(0)
摘要:上一节我们学习了 Weave 网络内部如何通信,今天讨论 Weave 如何与外界通信。 weave 是一个私有的 VxLAN 网络,默认与外部网络隔离。外部网络如何才能访问到 weave 中的容器呢? 答案是: 首先将主机加入到 weave 网络。 然后把主机当作访问 weave 网络的网关。 要将 阅读全文
posted @ 2019-06-19 18:34 bwzbk 阅读(260) 评论(0) 推荐(0)
摘要:上一节我们分析了 Weave 的网络结构,今天讨论 Weave 的连通和隔离特性。 首先在host2 执行如下命令: weave launch 192.168.0.44 这里必须指定 host1 的 IP 192.168.0.44,这样 host1 和 host2 才能加入到同一个 weave 网络 阅读全文
posted @ 2019-06-19 17:07 bwzbk 阅读(342) 评论(0) 推荐(0)
摘要:上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构。在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 -itd busybox 首先执行 eval $(weave env) 很重要,其作用是将后续的 do 阅读全文
posted @ 2019-06-18 17:54 bwzbk 阅读(442) 评论(0) 推荐(0)
摘要:weave 是 Weaveworks 开发的容器网络解决方案。weave 创建的虚拟网络可以将部署在多个主机上的容器连接起来。对容器来说,weave 就像一个巨大的以太网交换机,所有容器都被接入这个交换机,容器可以直接通信,无需 NAT 和端口映射。除此之外,weave 的 DNS 模块使容器可以通 阅读全文
posted @ 2019-06-17 19:59 bwzbk 阅读(256) 评论(0) 推荐(0)
摘要:不同的 overlay 网络是相互隔离的。我们创建第二个 overlay 网络 ov_net2 并运行容器 bbox3。 bbox3 分配到的 IP 是 10.0.1.2,尝试 ping bbox1(10.0.0.2)。 ping 失败,可见不同 overlay 网络之间是隔离的。即便是通过 doc 阅读全文
posted @ 2019-06-13 10:46 bwzbk 阅读(282) 评论(0) 推荐(0)
摘要:上一节我们在 host1 中运行了容器 bbox1,今天将详细讨论 overlay 网络跨主机通信的原理。 在 host2 中运行容器 bbox2: bbox2 IP 为 10.0.0.3,可以直接 ping bbox1: 可见 overlay 网络中的容器可以直接通信,同时 docker 也实现了 阅读全文
posted @ 2019-06-04 18:34 bwzbk 阅读(410) 评论(1) 推荐(0)
摘要:上一节我们创建了 overlay 网络 ov_net1,今天将运行一个 busybox 容器并连接到 ov_net1: 查看容器的网络配置: bbox1 有两个网络接口 eth0 和 eth1。eth0 IP 为 10.0.0.2,连接的是 overlay 网络 ov_net1。eth1 IP 17 阅读全文
posted @ 2019-06-04 17:02 bwzbk 阅读(215) 评论(0) 推荐(0)
摘要:上一节我们搭建好实验环境,配置并运行了consul,今天开始创建 overlay 网络。 在 host1 中创建 overlay 网络 ov_net1: -d overlay 指定 driver 为 overaly。 docker network ls 查看当前网络: 注意到 ov_net1 的 S 阅读全文
posted @ 2019-06-04 16:11 bwzbk 阅读(196) 评论(0) 推荐(0)
摘要:为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络。VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 VLAN 相同的以太网二层服务,但是拥有更强的扩展性和灵活性。有关 VxLAN 更详细的内容可参考 阅读全文
posted @ 2019-06-04 15:27 bwzbk 阅读(318) 评论(0) 推荐(0)
摘要:跨主机网络方案包括: docker 原生的 overlay 和 macvlan。 第三方方案:常用的包括 flannel、weave 和 calico。 docker 网络是一个非常活跃的技术领域,不断有新的方案开发出来,那么要问个非常重要的问题了: 如此众多的方案是如何与 docker 集成在一起 阅读全文
posted @ 2019-06-04 10:59 bwzbk 阅读(241) 评论(0) 推荐(0)
摘要:用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境。除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理。其中最常用的就是无需登录到 machine 就能执行 docker 相关操作。 我们前面学过,要执行远程 docker 阅读全文
posted @ 2019-06-04 10:13 bwzbk 阅读(144) 评论(0) 推荐(0)
摘要:对于 Docker Machine 来说,术语 Machine 就是运行 docker daemon 的主机。“创建 Machine” 指的就是在 host 上安装和部署 docker。先执行 docker-machine ls 查看一下当前的 machine: 如我们所料,当前还没有 machin 阅读全文
posted @ 2019-06-04 09:13 bwzbk 阅读(221) 评论(0) 推荐(0)
摘要:前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的。但在真正的环境中会有多个 host,容器在这些 host 中启动、运行、停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host。 对于这样一个 multi-host 环境,我们将如何高 阅读全文
posted @ 2019-06-03 17:02 bwzbk 阅读(198) 评论(0) 推荐(0)
摘要:Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要。前面我们主要关注的是 volume 的创建、共享和使用,本节将讨论如何备份、恢复、迁移和销毁 volume。 备份 因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际 阅读全文
posted @ 2019-06-02 11:27 bwzbk 阅读(220) 评论(0) 推荐(0)
摘要:在上一节的例子中 volume container 的数据归根到底还是在 host 里,有没有办法将数据完全放到 volume container 中,同时又能与其他容器共享呢? 当然可以,通常我们称这种容器为 data-packed volume container。其原理是将数据打包到镜像中,然 阅读全文
posted @ 2019-06-01 20:30 bwzbk 阅读(231) 评论(0) 推荐(0)
摘要:volume container 是专门为其他容器提供 volume 的容器。它提供的卷可以是 bind mount,也可以是 docker managed volume。下面我们创建一个 volume container: 我们将容器命名为 vc_data(vc 是 volume containe 阅读全文
posted @ 2019-06-01 20:17 bwzbk 阅读(265) 评论(0) 推荐(0)
摘要:数据共享是 volume 的关键特性,本节我们详细讨论通过 volume 如何在容器与 host 之间,容器与容器之间共享数据。 容器与 host 共享数据 我们有两种类型的 data volume,它们均可实现在容器与 host 之间共享数据,但方式有所区别。 对于 bind mount 是非常明 阅读全文
posted @ 2019-06-01 19:14 bwzbk 阅读(484) 评论(0) 推荐(0)
摘要:docker managed volume 与 bind mount 在使用上的最大区别是不需要指定 mount 源,指明 mount point 就行了。还是以 httpd 容器为例: 我们通过 -v 告诉 docker 需要一个 data volume,并将其 mount 到 /usr/loca 阅读全文
posted @ 2019-05-26 20:13 bwzbk 阅读(345) 评论(0) 推荐(0)
摘要:storage driver 和 data volume 是容器存放数据的两种方式,上一节我们学习了 storage driver,本节开始讨论 Data Volume。 Data Volume 本质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容器的文件系统中。D 阅读全文
posted @ 2019-05-26 18:40 bwzbk 阅读(337) 评论(0) 推荐(0)