docker网络
docker网络的类型:
桥接模式:默认的网络模式。
桥接模式工作在第二层,也就是数据链路层
1.安装完成docker时,会自动创建一个虚拟额度的网络,类似于交换机
2.分配唯一的ip地址,当用户创建容器时,docker会分配唯一的ip地址给创建的容器使用,IP地址范围是在桥接网络的网段中。当容器被销毁时,ip地址也会被回收,可以继续供下一个容器使用
3.容器桥接到网桥,当容器启动时间,1容器的虚拟接口(veth pair)连接到网桥,一个断电再容器,另外一个在主机
4.容器与主机通信,通过网桥模式,容器可直接与主机通信
5.容器和容器之间,不同的容器再同一个网段,连接在同一个网桥上运行,容器也有唯一的ip地址,容器可通过彼此的ip直接通信。docker会在网桥模式上自动设置路由,,容器直接可以直接交流(docker是单节点模式,容器不能实现跨主机的通信)
6.NAT(网络地址转换)docker在宿主机之间的通信实际上使用的NAT的技术,也就是暴露端口,和主机的端口进行映射,是吧容器内部的私有ip地址,转换成宿主机的主机ip。实现容器与外部的通信
*docker的网络模式:
1.bridge 默认模式
2.host模式:创建容器时,指定容器的模式为host,那么容器不会有自己的网卡,也会有内部的ip地址
使用宿主机的ip和端口
3.container模式:容器和容器之间共享一个网络命名空间,新的容器也不会创建自己的网卡和ip
两个容器除了网络是一样的,其他的还是隔离的。主要用于内部数据的通信和容器内部的挂载卷。
docker inspect -f ‘{{.State.Pid}}' centos1
获得容器的pid号
4.none模式:指定网络模式为none的容器,会有自己网络空间,但是没有任何网络配置。只能在容器内部自己访问。
用于创建容器时,进行内部的业务测试使用。
**5.自定义网络模式:用户可以给docker创建一个自定义的虚拟和网桥设备,可以给这个设备自定义网段。
创建容器时,可以使用自定义的网桥设备,给容器自定义ip地址。(只有先创建自定义网桥,才可以给容器指定ip地址)
docker network ls
查看docker当前所有的网络模式
创建自定义网络:
docker network create --subnet=172.19.0.0/16 --opt"com.docker.network.bridge.name"="docker1"mynetwork1
创建容器时,指定ip地址:
docker run -itd --name test6 --network mynetwork --ip 172.19.0.10 nginx:1.22
**docker的cgroup--------资源控制
docker是通过cgroup来对资源进行限制,资源胚珠主要三个方面:cpu,内存和硬盘
1.cpu资源控制:
linux通过CFS(完全公平调度器),来对进程使用cpu的时间进行调度。
CFS模式的调度周期是100ms,通过这个周期来设置每个容器占用cpu的调度周期。
cpu.cfs_period_us 可调度周期,进程可以占用cpu的时间,默认所有 1000-1000000
cpu.cfs_quota_us 设置在周期内,进程占用cpu的时间进行配额管理 >=1000
使用cpu的限额是全部时间的20%
docker run -itd --name test --cpu-quota 20000
2.多个容器,如何分配cpu的占比
占比是按照权重分配,默认是1024 ,必须是1024的倍数。
--cpu-shares 要设置多个容器的权重才能生效,最少2个
只有当容器分配的资源紧张时,才会根据配额分配cpu的占比。
分配权重也会更具其他已经设置的容器的cpu使用情况来进行配额的管理。
3.设置容器绑定cpu
--cpuset-cpus 0
对内存的限制:-m
对swap空间进行限制,对swap空间进行限制的前提,必须要限制内存的使用
-m 512m --memory-swap=1g
-m 512m --memory-swap=0,或者不设置,表示swap的空间的限额是内存的两倍
-m 512m --memory-swap=512m 容器不能使用swap空间
-m 512m --memory-swap=-1 内存的限额是512m,但是swap的空加班的使用不受限制
原文地址:https://blog.csdn.net/2401_87893771/article/details/145059954
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!