Docker 网络

  |  

全部的 K8S学习笔记总目录,请点击查看。

docker容器是一块具有隔离性的虚拟系统,容器内可以有自己独立的网络空间,

  • 多个容器之间是如何实现通信的呢?
  • 容器和宿主机之间又是如何实现的通信呢?
  • 使用-p参数是怎么实现的端口映射?

带着这些问题,我们来学习一下docker的网络模型,最后我会通过抓包的方式,给大家演示一下数据包在容器和宿主机之间的转换过程。

docker 运行原理

  |  

全部的 K8S学习笔记总目录,请点击查看。

实现原理

docker优势主要是轻量级的虚拟化以及容器快速启停。

而虚拟化核心需要解决两个问题:资源隔离与资源限制

  • 虚拟机硬件虚拟化技术, 通过一个 hypervisor 层实现对资源的彻底隔离。
  • 容器则是操作系统级别的虚拟化,利用的是内核的 Cgroup 和 Namespace 特性,此功能完全通过软件实现。

sphinx - python文档生成器

  |  

Sphinx

Sphinx 是一个python第三方库,它将一组纯文本源文件转换为各种输出格式的工具,自动生成交叉引用、索引等,也就是说,如果您有一个包含 reStructuredText 或 Markdown 的源代码注释等,Sphinx可以生成一系列HTML文件、PDF文件(通过LaTeX)、手册页等等。

Sphinx专注于文档,特别是手写文档,然而,Sphinx也可以用来生成博客、主页甚至书籍。Sphinx的大部分功能来自其默认纯文本标记格式(reStructuredText)的丰富性。

yaml 入门

  |  

yaml介绍

官网介绍如下:

1
2
3
4
5
6
7
%YAML 1.2
---
YAML: YAML Ain't Markup Language™

What It Is:
YAML is a human-friendly data serialization
language for all programming languages.

docker 介绍

  |  

全部的 K8S学习笔记总目录,请点击查看。

认识docker

Docker 公司位于旧金山,原名dotCloud,底层利用了Linux容器技术(LXC)(在操作系统中实现资源隔离与限制)。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的。

Hypervisor: 一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件 。常见的VMware的 Workstation 、ESXi、微软的Hyper-V或者思杰的XenServer。

Container Runtime:通过Linux内核虚拟化能力管理多个容器,多个容器共享一套操作系统内核。因此摘掉了内核占用的空间及运行所需要的耗时,使得容器极其轻量与快速。Docker是其中最知名的一种容器Container Runtime,其他的还有 CoreOS 容器 Rkt ,Podman。

python 设计模式 01

  |  

设计模式简介

设计模式(Design pattern)是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。

这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。

我们使用设计模式最终的目的是实现代码的高内聚和低耦合。

设计模式中有一些重要的人物如,“四人帮”(Gang of Four, GoF):Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,他们写了一本书在设计模式中影响比较大《设计模式:可复用面向对象软件的基础》