Docker网络+资源控制

在创建安装完docker后,使用,查看网卡信息,会出现一个docker的默认虚拟容器网关docker 0,docker网络模式默认为Bridge,docker0是虚拟容器网关,通过桥接的方式,与宿主机的网卡进行通信。在创建容器后,虚拟容器网关docker 0会分配一个IP地址给容器,该网关下的容器,通过分配的IP地址进行通信,与外界网络通信时,通过映射容器的端口到宿主机,外界访问容器时,通过宿主机的IP地址+端口号进行访问
不同的docker网络之间属于不同的namespace,与宿主机网卡桥接Docker网络+资源控制_第1张图片

安装docker它会自动创建三个网络,,bridge(创建容器默认连接到此网络)Docker网络+资源控制_第2张图片Docker网络+资源控制_第3张图片

docker网络

查看docker的网络信息

Docker网络+资源控制_第4张图片

创建桥接网络
–name 容器名称
–network 指定网络模式
–ip 指定IP地址
docker run -itd --name test1 --network bridge --ip 127.17.0.100 centos:7 /bin/bash

Docker网络+资源控制_第5张图片
报错,会发现没有指定ip无法启动
Docker网络+资源控制_第6张图片
不指定ip就可以成功启动
Docker网络+资源控制_第7张图片
进去容器,查看ip地址
Docker网络+资源控制_第8张图片
Docker网络+资源控制_第9张图片

自定义网络固定ip
docker network create --subnet=172.18.0.0/16 abc

Docker网络+资源控制_第10张图片

docker run -itd --name test2 --network abc --ip 172.18.0.10 centos:7 /bin/bash

在这里插入图片描述

进入docker
docker exec -it cce007205b84 /bin/bash
yum install net-tools -y

Docker网络+资源控制_第11张图片

CPU、内存、IO资源控制

cpu使用率控制
cat /sys/fs/cgroup/cpu/docker/500c995db18c8987ea063e441dec9cde38cfbe484b07fe9db1a57aa3cef1aec9/cpu.cfs_quota_us 

在这里插入图片描述

设置20%的限定
docker run -itd --name test3 --cpu-quota 20000 centos:7 /bin/bash

在这里插入图片描述

按比例分配
创建两个容器为c1和c2,若只有这两个容器,设置这两个容器的权重,使得c1和c2的cpu资源占比为33%和66.7%
docker run -itd --name c1 --cpu-shares 512 centos:7 /bin/bash
docker run -itd --name c2 --cpu-shares 1024 centos:7 /bin/bash

Docker网络+资源控制_第12张图片
安装压测工具
yum install epel-release -y
yum install stress -y
同时开启c1和c2
stress -c 4 //产生四个CPU线程
验证结果
Docker网络+资源控制_第13张图片

限制容器使用指定的CPU
docker run -itd --name test1 --cpuset-cpus 1,3 centos:7 /bin/bash

Docker网络+资源控制_第14张图片
安装
压测工具
验证方法:压测容器,使用top命令,按1检查
Docker网络+资源控制_第15张图片

内存使用限制
docker run -itd --name test2 -m 512m centos:7 /bin/bash

Docker网络+资源控制_第16张图片
用docker stats 查看
Docker网络+资源控制_第17张图片
–device-read-bps:限制读某个设备的bps(数据量)
例:docker run -d --device-read-bps /dev/sda:30 centos:7
–device-write-bps:限制写入某个设备的bps(数据量)
例:docker run -d --device-write-bps /dev/sda:30 centos:7
–device-read-iops:限制读某个设备的iops(次数)
–device-write-iops:限制写入某个设备的iops(次数)

你可能感兴趣的:(docker容器)