淘宝网站边上的导航栏怎么做,四川建设网项目招标,郑州工程建设信息网站,简单的网站开发工具docker数据卷#xff1a;
容器和宿主机之间数据共享
容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载#xff0c;实现数据文件共享
容器的生命周期有限#xff0c;一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始…docker数据卷
容器和宿主机之间数据共享
容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载实现数据文件共享
容器的生命周期有限一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始化所以为了防止数据丢失重要的组件一定会做数据卷。 -v volume指定
[rootdocker1 ~]# docker run -itd --name test1 -v /opt/test1:/opt/test2 centos:7 /bin/bash
#前面的是宿主机后面的是容器
[rootdocker1 opt]# docker run -itd --name test2 -v /etc/yum.repos.d/:/etc/yum.repos.d centos:7 /bin/bash
e5ba904a4b2643f68f4cea79b2df6129b2eeba5c415110d36f24508355d77b33
#将宿主机目录下的文件和目录同步到容器的目录下
[rootdocker1 opt]# docker exec -it test2 bash
[roote5ba904a4b26 /]# cd /etc/yum.repos.d/
[roote5ba904a4b26 yum.repos.d]# ls
CentOS-Base.repo
docker run -itd --name test2 -v /etc/yum.repos.d/:/etc/yum.repos.d centos:7 /bin/bash
-v /etc/yum.repos.d/:/etc/yum.repos.d
第一点前面是宿主机目录后面是容器内的目录
第二点加不加斜杠都是目录不是文件如果不存在宿主机和容器自动创建
第三点已宿主机的目录为标的同步的是宿主机目录的内容到容器内
第四点挂载之后容器内的目录的权限默认是读写权限都有。 容器与容器之间进行数据共享
容器之间会需要共享数据最简单的方法就是使用数据卷容器。可以提供容器内的一个目录专门用来供其他容器进行挂载。
#在容器内部创建两个目录
[rootdocker1 opt]# docker run -itd --name test1 -v /opt/test1 -v /opt/test2 centos:7 /bin/bash
#新创一个容器与上一个容器的目录进行挂载
[rootdocker1 opt]# docker run -itd --name test2 --volumes-from test1 centos:7 /bin/bash
#两边在挂载的目录中都有读写的权限 容器互联
容器与容器之间建立一条专门的网络通道容器与容器之间通过这个通道互相通信。
建立通道之后容器之间可以通过容器名进行通信容器之间不需要暴露端口也不依赖宿主机的ip。
在容器内部可以通过容器名直接访问另一个容器简化容器之间的连接配置 新版本
#指定网络我们要先创建自定义网络。
[rootdocker1 opt]# docker network create --subnet192.168.10.0/24 --opt com.docker.network.bridge.namedocker2 xy102
[rootdocker1 opt]# docker run -itd --name n11 --networkxy102 nginx:1.22
[rootdocker1 opt]# docker run -itd --name n22 --networkxy102 nginx:1.22
#分别进入两个容器并curl 对方的容器名显示可以通
[rootdocker1 opt]# docker exec -it n11 bash
root3f59b04c77f7:/# curl n22 docker容器的资源控制
docker通过cgroup来控制容器的资源配额。包括cpu、内存、磁盘三大方面进行控制。
cgroup
control gropus
linux内核提供的可以限制、记录、隔离进程所使用的物理资源cpu、内存、磁盘IO的机制。
cpu限制
1、cpu资源控制
进程占用cpu的时间来进行计算。
cat cpu.cfs_quota_us
如果结果是-1则表示系统没有对该进程进行cpu的限制。
cat cpu.cfs_period_us
100000微秒 100毫秒
在每个使用cpu的周期内容器可以用指定的比例使用cpu时间
50000微秒 50毫秒
#设置cpu控制
[rootdocker1 cpu]# docker run -itd --name test1 --cpu-quota 50000 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
[rootd0ba0a96cbaa /]# yum -y install epel-release
[rootd0ba0a96cbaa /]# yum -y install stress
[rootd0ba0a96cbaa /]# stress -c 1
[rootdocker1 /]# docker top test1
UID PID PPID C STIME TTY TIME CMD
root 37226 37205 0 11:29 pts/0 00:00:00 /bin/bash
root 37278 37205 0 11:29 pts/1 00:00:00 bash
root 38120 37278 0 11:45 pts/1 00:00:00 stress -c 1
root 38121 38120 53 11:45 pts/1 00:00:03 stress -c 1
pid 容器在宿主机上的进程号
ppid 在容器内部的进程号 2、设置cpu的资源占用比
--cpu-shares 默认值是1024必须是1024的倍数
[rootdocker1 opt]# docker run -itd --name test1 --cpu-shares 512 centos:7 /bin/bash
[rootdocker1 opt]# docker cp /etc/yum.repos.d/ test1:/etc/yum.repos.d
[root2a5b1a119f7a yum.repos.d]# yum -y install epel-release
[root2a5b1a119f7a yum.repos.d]# yum -y install stress
[root2a5b1a119f7a yum.repos.d]# stress -c 4
[rootdocker1 opt]# docker run -itd --name test2 --cpu-shares 1024 centos:7 /bin/bash
[rootdocker1 opt]# docker cp /etc/yum.repos.d/ test2:/etc/yum.repos.d
[root3c1a9946d942 yum.repos.d]# yum -y install epel-release
[root3c1a9946d942 yum.repos.d]# yum -y install stress
[root3c1a9946d942 yum.repos.d]# stress -c 4
#再开一个终端查看cpu的占比
[rootdocker1 yum.repos.d]# docker stats 设置容器绑定cpu
--cpuset-cpus 0,1
[rootdocker1 opt]# docker run -itd --name test5 --cpuset-cpus 0,2 centos:7 /bin/bash 内存限制
--memory
-m 512m
-m 1g
单位是小写
也可以限制容器使用交换空间swap
--memory-swap512m/1g
[rootdocker1 opt]# docker run -itd --name test5 -m 512m --memory-swap1g centos:7 /bin/bash
--name test5 -m 512m
--memory-swap1g
内存限制是512M
交换空间限制的大小是1g-512m512m
--memory-swap0或者不加
容器使用swap交换分区的大小是限制的内存值的两倍
-m 512m --memory-swap512m
容器不能使用swap交换分区
-m 512m --memory-swap-1
内存还是受限内存只能用512m使用交换分区不再受限制宿主机有多少swap空间容器就可以使用多少
磁盘限制不重要
磁盘读写速度的限制磁盘的读次数限制和写次数限制
1、对磁盘的读进行限制
[rootdocker1 cpu]# docker run -itd --name test6 --device-read-bps /dev/sda:1M centos:7 /bin/bash
#容器在磁盘上每秒只能读1M
单位
kb k
mb m
gb g 2、对磁盘的写进行限制
[rootdocker1 cpu]# docker run -itd --name test6 --device-write-bps /dev/sda:1M centos:7 /bin/bash
#容器在磁盘上每秒只能写1M
3、对磁盘的读次数进行限制
[rootdocker1 cpu]# docker run -itd --name test6 --device-read-iops /dev/sda:100 centos:7 /bin/bash
4、对磁盘的写次数进行限制
[rootdocker1 cpu]# docker run -itd --name test6 --device-write-iops /dev/sda:100 centos:7 /bin/bash 清理容器的残留要谨慎使用
[rootdocker1 cpu]# docker system prune -a
#清理容器的残留删除停止运行的容器删除无用的数据卷和网络 课后练习
实验一
设置3个权重 256 768 2048
3个容器设置绑定到cpu 0
操作
[rootdocker1 opt]# docker run -itd --name test1 --cpu-shares 256 --cpuset-cpus 0 centos:7 /bin/bash
[rootdocker1 opt]# docker cp /etc/yum.repos.d/ test1:/etc/yum.repos.d
[rootdocker1 opt]# docker run -itd --name test2 --cpu-shares 768 --cpuset-cpus 0 centos:7 /bin/bash
[rootdocker1 opt]# docker cp /etc/yum.repos.d/ test2:/etc/yum.repos.d
[rootdocker1 opt]# docker run -itd --name test3 --cpu-shares 2048 --cpuset-cpus 0 centos:7 /bin/bash
[rootdocker1 opt]# docker cp /etc/yum.repos.d/ test3:/etc/yum.repos.d
实验结果 cpu的限制和绑定cpu一般是一起使用的 实验二
绑定到指定的cpu1 设置占用cpu的比重是25%
同时限制内存使用率512m
[rootdocker1 opt]# docker run -itd --name test4 --cpu-quota 25000 --cpuset-cpus 1 -m 512m --memory-swap1g centos:7 /bin/bash