单个host上的容器的网络:通过本章的学习,我们知道docker默认有三种网络,可以通过docker network ls查看: none:封闭的网络,通过--network=none来指定: host:将host主机上面的网络完全映射到容器中: bridge:桥接网络,默认情况下容器使用的是bridge,并将容器网络桥接到docker0上:可以通过brctl show查看桥接情况 我们可以创建user-defined网络,user-defined也分为三种:bridge,overlay,mac…
What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成container 2.虚拟机:AWS,Azure,VMware,华为,公有云,私有云等 对容器有了解的人都会觉得容器和虚拟机很像,因为二者都是为应用提供封装和隔离. 1.系统层面:容器本质上是单个应用程序,而虚拟机则需要更多的资源来运行整个操作系统,虚拟机上可以运行容器,其实我们也可以把容器看作成一个…
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资源进行限制的操作,包括:CPU(- c),内存(-m   --memory-swap),blkio IO(--device-weight),知道了容器的cpu和blkio io的限制是根据权重来限制的,这种权重体现在资源紧缺的情况下,而内存的限制是由物理内存和swap内存来限制的,如果不设置--me…
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup可以设置进程使用CPU,内存和IO资源使用的限额.我们之前学习的通过-m,--memory-swap,-c,--blkio-weight就是通过cgroup实现的.那么cgroup到底是什么样子的呢? 可以在/sys/fs/cgroup里面找到,例如: 我们运行一个容器,我们设置的cpu的权重是70…
              一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他容器乃至整个Host的性能. 内存限额 与操作系统类似:容器使用的内存包括两部分:物理内存和swap内存 1.可以使用参数来控制容器内存的使用量       -m或者是--memory:设置内存使用限额,例如:100M,2G       --memory-swap : 设置内存+swap的使用限额(…
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方已经将Docker更名为docker-engine. 如果你已经安装了这个版本的Docker需要使用下边的命令删除它 $ sudo yum -y remove docker docker-common container-selinux /var/lib/docker 无需删除. 安装Docker…
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 docker(五) 使用Docker Registry搭建镜像私服 docker(六) 使用docker-maven-plugin插件构建docker镜像(已过时) docker(七) 使用dockerfile-maven-plugin插件构建docker镜像 官方安装教程: Ubuntu下安装d…
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install gcc-c++ 具体案例如下: 第三步:安装docker 使用官方安装脚本自动安装(强烈推荐)安装命令如下: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 当然也还有很多种安装方式,比如手动安装..... 第四…
之前学习了单个host上的网络,我们知道单个host上的网络有:none,host,bridge和joined,他们解决了单个host上面的容器通信的问题:接下来我们讨论跨主机间容器通信的方案 跨主机的网络方案包括: 1.docker原生的overlay和macvlan 2.第三方方案:常用的包括flannel,weave,calico docker 网络是一种非常活跃的技术领域,不断有新方案开发出来: 这么多的方案是通过:libnetwork以及CNM与docker集成在一起的 libnetw…
flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟IP 工作原理:将TCP数据包装在另一种网络包里进行路由转发和通信,目前已经支持UDP,Vxlan,AWS,APC和GRE等路由转发的模式.默认节点间通过UDP进行转发 1.安装配置etcd etcd功能:与consul的功能差不多,维护主机间的路由表,flannel的配置信息全部存放在etcd里面,…