一、docker数据卷:
1.容器和宿主机之间数据共享----挂载卷----容器内的目录和宿主机的目录进行挂载。实现数据文件共享容器的生命周期有限,一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始化,所以为了防止数据丢失重要的组件一定会做数据卷。
-v:指定数据卷
docker run -itd --name test1 -v /opt/test1:/opt/test2 nginx:1.22 /bin/bash
-v冒号前指定的是宿主机,后面指的是容器内目录
加不加斜杠,都是目录,不是文件,如果不存在,宿主机和容器自动创建。
以宿主机的目录为标记,同步的是宿主机目录的内容到容器内
挂载之后容器内的目录的权限默认是读写权限都有
设置数据卷的只读模式
2.容器与容器之间进行数据共享:容器之间会需要共享数据,最简单的方法就是使用数据卷容器,可以提供容器内的一个目录,专门用来供其它容器进行挂载
删除所有容器的命令
docker ps -a | awk 'NR>=2{print $1}' | xargs docker rm -f
3.容器互联:容器与容器之间专门建立一条网络通信,容器与容器之间通过通道相互通信,建立通道之后,容器之间可以通过容器名进行通信,容器之间不需要暴露端口,也不依赖宿主机IP,再容器内部可以通过容器名直接访问另一个容器,简化容器之间的连接配置。
创建容器互联先指定网络,我们要先创建自定义网络及网卡
进行容器互联并且根据容器名进行访问
二、docker容器的资源控制:dockers通过cgroup来控制容器的资源配额,包括cpu、内存、磁盘(比较少)。
cgroup:linux内核提供的可以限制,记录,隔离进程所有使用的物理资源(cpu、内存、磁盘)的机制
1.cpu资源控制:进程占用cpu时间来进行计算
-1:表示系统没有对该进程进行cpu限制
100000:表示微妙,也就是100毫秒,也就是每个使用cpu的周期内,容器可以用指定的比例使用cpu的时间。
实现cpu资源控制先进行挂载
PID:是容器在宿主机上的进程号,PPID是在容器内部的进程号
2.设置cpu的资源占用比:--cpu-shares默认值是1024,必须是1024的倍数或者整除
多个容器之间如何做限制:用死循环来做,也可以用上述方法做
如何把容器绑定到CPU --cpuset-cpus
cpu的限制和绑定cpu一般是一起使用的
三、内存限制:也可以限制容器使用交换空间swap
内存限制是512M,交换空间限制的大小是1g-512m=512g -m是指定大小
--memory-swap=0或者不写,容器使用swap交换分区的大小是限制的内存值的两倍
-m 512m --memory-swap=512m:容器不能使用swap交换空间
-m 512m --memory-swap=-1:内存还是受限512m,使用交换分区不再受限,宿主机有多少swap空间,容器就可以用多少。
四、磁盘读写速度的限制,磁盘的读次数限制和写次数限制(磁盘了解即可)
容器磁盘在磁盘上每秒只能读1m
容器在磁盘上每秒只能写1M
五、 清理dcker的镜像、容器的残留,删除停止运行的容器,删除无用的数据卷和网络