Docker----网络、CPU、内存、io资源控制
前言:
一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。 对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机;对于容器,Docker也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能 。 Docker 基于 Linux 内核提供的 cgroups 功能,可以限制容器在运行时使用到的资源,比如内存、CPU、块 I/O、网络等。
一:Docker网络
1、Docker网络工作方式
安装Docker时,会自动创建三个网络:bridge(创建容器默认连接到此网络)、 none 、host。
[root@localhost ~]# docker network ls
2、bridge模式
在搭建好docker之后,通过ip add 或者 ifconfig命令就可以查看到,虚拟出一块叫做docker 0的一块网卡。 作为docker的默认网络模式,即bridge模式。其中的所有容器将docker0作为网关,这样就能与外界进行通信。
bridge模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上 。
bridge模式是docker的默认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。
3、host模式
如果启动容器的时候使用host模式,