江苏省建设考试培训网网站,网站高级?O置,公司做网站需准备什么材料,wordpress股票api目录
数据卷
实现数据卷
宿主机和容器之间进行数据共享
容器与容器之间进行数据共享
容器互联
docker容器的资源控制
cpu
1.设置cpu资源控制#xff08;比重#xff09;
2. 设置cpu的资源占用比#xff08;权重#xff09;
3.设置容器绑定cpu
内存
1.内存限制 …目录
数据卷
实现数据卷
宿主机和容器之间进行数据共享
容器与容器之间进行数据共享
容器互联
docker容器的资源控制
cpu
1.设置cpu资源控制比重
2. 设置cpu的资源占用比权重
3.设置容器绑定cpu
内存
1.内存限制
磁盘
1.磁盘读写速度的限制
2.磁盘的读写次数限制
清理docker的磁盘空间的命令
练习 数据卷
数据卷的目的
1. 实现容器和宿主机之间数据共享数据卷又叫挂载卷就是把容器内的目录和宿主机的目录进行挂载实现数据文件共享
2. 为了保证数据的持久化容器的生命周期有限一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始化所以为了防止数据修饰重要的组件一定会做数据卷。
实现数据卷
宿主机和容器之间进行数据共享
创建宿主机与容器之间的数据卷
docker run -itd --name test1 -v /opt/test1:/opt/test2 centos:7 /bin/bash
-v 指定
注意点
1. 左边的test1是宿主机目录 右边的test2是容器内的目录
2. 加不加 / 都是目录而不是文件。如果不存在宿主机和容器都会自动创建目录
3. 以宿主机的目录为标准同步的是宿主机目录的内容到容器内
4. 挂载之后容器内的目录的权限默认是读写权限都有
设置容器内的数据卷目录只读权限
docker run -itd --name test1 -v /opt/test1:/opt/test2:ro centos:7 /bin/bash
容器与容器之间进行数据共享
容器之间会需要共享数据最简单的方法就是使用数据卷容器。可以提供容器内的一个目录专门用来供其他容器进行挂载。
docker run -itd --name test1 -v /opt/test1 -v /opt/test2 centos:7 /bin/bash 在容器内部创建两个目录
docker run -itd --name test2 --volumes-from test1 centos:7 /bin/bash 容器与容器数据共享
容器互联
容器与容器之间建立一条专门的网络通道容器与容器之间通过这个通道互相通信。
建立通道之后容器之间可以通过容器名进行通信容器之间不需要暴露端口也不依赖宿主机的ip。在容器内部可以通过容器名直接访问另一个容器可以简化容器之间的连接配置。
指定网络我们要先创建自定义网络。
docker network create --subent192.168.10.0/24 --opt com.docker.network.bridge.namedocker2 xy102 自定义网络
docker run -itd --name n1 --networkxy102 nginx:1.22
docker run -itd --name n2 --networkxy102 nginx:1.22
docker exec -it n1 bash 进入容器
然后两个容器可以互相访问容器名
docker容器的资源控制
docker通过cgroup来控制容器的资源配额包括cpu、内存、磁盘三大方面。
cgroup全称control group它是Linux内核提供的可以限制、记录、隔离进程所使用的物理资源cpu、内存、磁盘IO的机制
cpu
1.设置cpu资源控制比重
是按进程占用cpu的时间来进行计算
查看cpu限制步骤
首先docker ps 查看容器的container id并复制
然后cd /sys/fs/cgroup/cpu/docker/
然后cd 把上面的container id复制过来并用tab键补齐
cd 246fb9e648f7893e5db24b5ced6a4136044bc6c8b3a7d3a6fa429e2861cd3dc1/ cat cpu.cfs_quota_us 显示-1
表示系统没有对该进程进行cpu的限制
cat cpu.cfs_period_us 显示100000微妙100毫秒0.1秒
在每个使用cpu的周期内容器可以用指定的比例使用cpu时间 设置cpu资源控制步骤
设置cpu限制命令比重默认100000就是100%
docker run -itd --name test1 --cpu-quota 50000 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
然后docker exec -it test1 bash 进入容器
安装epel源 yum -y install epel-release 如果宿主机有epel需要先删掉
注如果要删可以先 rm -rf *删除然后执行docker cp /etc/yum.repos.d/Centos-7.repo test1:/etc/yum.repos.d/ 远程复制 然后再下载epel源 安装模拟软件 yum -y install stress
模拟cpu的压力 stress -c 4
注这里每次模拟都需要重新都安装一遍
然后top查看 或者 docker top test1 pid容器内的进程在宿主机上的进程号ppid在容器内部的进程号
2. 设置cpu的资源占用比权重
--cpu-shares 默认值是1024如果要设置必须是1024的倍数或者1024的除数
实验步骤
docker run -itd --name test2 --cpu-shares 512 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
然后docker exec -it test1 bash 进入容器
安装epel源 yum -y install epel-release 如果宿主机有epel需要先删掉
注如果要删可以先 rm -rf *删除然后执行docker cp /etc/yum.repos.d/Centos-7.repo test1:/etc/yum.repos.d/ 远程复制 然后再下载epel源 安装模拟软件 yum -y install stress
模拟cpu的压力 stress -c 4
注这里每次模拟都需要重新都安装一遍
然后top查看 或者 docker top test1
3.设置容器绑定cpu
--cpuset-cpus
docker run -itd --name test4 --cpuset-cpus 0,2 centos:7 /bin/bash
cpu的限制和绑定cpu一般是一起使用的。
内存
1.内存限制
--memory 简写-m 512m 或者 -m 1g
单位是小写也可以限制容器使用交换空间swap
--memory-swap512M/1g
命令docker run -itd --name test5 -m 512m --memory-swap1g centos:7 /bin/bash
-m 512m --memory-swap1g
内存限制是512M交换空间限制的大小是1g-512m512m
--memory-swap0 或者不写
容器使用swap交换分区的大小是限制的内存值的两倍就是1g
-m 512m --memory-swap512m
如果两个值一样表示容器不能使用swap交换分区
-m 512m --memory-swap1
内存还是受限制512m但使用交换分区不再受限制宿主机有多少swqp空间容器就可以用多少
模拟命令stress --vm 2 --vm-bytes 512M --vm-hang 0 模拟两个进程分别占用内存512m一共1运行
磁盘
1.磁盘读写速度的限制
docker run -itd --name test5 --device-read-bps /dev/sda:1M centos:7 /bin/bash
容器在磁盘上每秒只能读1M
这里可以用大写K、M、G 或者小写kb、mb、gb
docker run -itd --name test5 --device-write-bps /dev/sda:1M centos:7 /bin/bash
容器在磁盘上每秒只能写1M
2.磁盘的读写次数限制
docker run -itd --name test5 --device-read-iops /dev/sda:100 centos:7 /bin/bash
docker run -itd --name test5 --device-write-iops /dev/sda:100 centos:7 /bin/bash
清理docker的磁盘空间的命令
docker system prune -a
清理容器的残留删除停止运行的容器删除无用的数据卷和网络。
练习
1.设置3个权重 256 768 2048并且3个容器设置绑定到cpu 0
docker run -itd --name test1 --cpu-shares 512 --cpuset-cpus 0 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
docker run -itd --name test2 --cpu-shares 768 --cpuset-cpus 0 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
docker run -itd --name test3 --cpu-shares 2048 --cpuset-cpus 0 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
实验结果
top查看 docker stats 查看
2.绑定到指定的cpu 1 设置占用的cpu的比重是25%同时限制内存使用率512m
docker run -itd --name test4 --cpu-quota 25000 --cpuset-cpus 1 -m 512m --memory-swap512m -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
实验结果
top查看 docker stats 查看
free -h查看