当前位置: 首页 > news >正文

docker数据卷:

docker数据卷:

容器和宿主机之间数据共享

容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载,实现数据文件共享

容器的生命周期有限,一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始化,所以为了防止数据丢失,重要的组件一定会做数据卷。

-v volume:指定

[root@docker1 ~]# docker run -itd --name test1 -v /opt/test1:/opt/test2 centos:7 /bin/bash
#前面的是宿主机,后面的是容器
​
[root@docker1 opt]# docker run -itd --name test2 -v /etc/yum.repos.d/:/etc/yum.repos.d centos:7 /bin/bash
e5ba904a4b2643f68f4cea79b2df6129b2eeba5c415110d36f24508355d77b33
#将宿主机目录下的文件和目录同步到容器的目录下
​
[root@docker1 opt]# docker exec -it test2 bash
[root@e5ba904a4b26 /]# cd /etc/yum.repos.d/
[root@e5ba904a4b26 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

第一点:前面是宿主机目录,后面是容器内的目录

第二点:加不加斜杠,都是目录,不是文件,如果不存在,宿主机和容器自动创建

第三点:已宿主机的目录为标的,同步的是宿主机目录的内容到容器内

第四点:挂载之后,容器内的目录的权限默认是读写权限都有。

容器与容器之间进行数据共享:

容器之间会需要共享数据,最简单的方法就是使用数据卷容器。可以提供容器内的一个目录,专门用来供其他容器进行挂载。

#在容器内部创建两个目录
[root@docker1 opt]# docker run -itd --name test1 -v /opt/test1 -v /opt/test2 centos:7 /bin/bash
#新创一个容器与上一个容器的目录进行挂载
[root@docker1 opt]# docker run -itd --name test2 --volumes-from test1 centos:7 /bin/bash
#两边在挂载的目录中都有读写的权限

容器互联:

容器与容器之间建立一条专门的网络通道,容器与容器之间通过这个通道互相通信。

建立通道之后,容器之间可以通过容器名进行通信,容器之间不需要暴露端口,也不依赖宿主机的ip。

在容器内部可以通过容器名直接访问另一个容器,简化容器之间的连接配置

新版本:

#指定网络,我们要先创建自定义网络。
[root@docker1 opt]# docker network create --subnet=192.168.10.0/24 --opt "com.docker.network.bridge.name"="docker2" xy102
​
[root@docker1 opt]# docker run -itd --name n11 --network=xy102 nginx:1.22 
​
[root@docker1 opt]# docker run -itd --name n22 --network=xy102 nginx:1.22 
​
#分别进入两个容器,并curl 对方的容器名,显示可以通
[root@docker1 opt]# docker exec -it n11 bash
root@3f59b04c77f7:/# 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控制
[root@docker1 cpu]# docker run -itd --name test1 --cpu-quota 50000 -v /etc/yum.repos.d/:/etc/yum.repos.d/ centos:7 /bin/bash
​
[root@d0ba0a96cbaa /]# yum -y install epel-release
[root@d0ba0a96cbaa /]# yum -y install stress
[root@d0ba0a96cbaa /]# stress -c 1
​
[root@docker1 /]# 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的倍数

[root@docker1 opt]# docker run -itd --name test1 --cpu-shares 512 centos:7 /bin/bash
[root@docker1 opt]# docker cp /etc/yum.repos.d/ test1:/etc/yum.repos.d
[root@2a5b1a119f7a yum.repos.d]# yum -y install epel-release
[root@2a5b1a119f7a yum.repos.d]# yum -y install stress
[root@2a5b1a119f7a yum.repos.d]# stress -c 4
​
[root@docker1 opt]# docker run -itd --name test2 --cpu-shares 1024 centos:7 /bin/bash
[root@docker1 opt]# docker cp /etc/yum.repos.d/ test2:/etc/yum.repos.d
[root@3c1a9946d942 yum.repos.d]# yum -y install epel-release
[root@3c1a9946d942 yum.repos.d]# yum -y install stress
[root@3c1a9946d942 yum.repos.d]# stress -c 4
​
#再开一个终端查看cpu的占比
[root@docker1 yum.repos.d]# docker stats 

设置容器绑定cpu:

--cpuset-cpus 0,1

[root@docker1 opt]# docker run -itd --name test5  --cpuset-cpus 0,2 centos:7 /bin/bash

内存限制

--memory=

-m 512m

-m 1g

单位是小写

也可以限制容器使用交换空间swap

--memory-swap=512m/1g

[root@docker1 opt]# docker run -itd --name test5 -m 512m --memory-swap=1g centos:7 /bin/bash

--name test5 -m 512m

--memory-swap=1g

内存限制是512M

交换空间限制的大小是1g-512m=512m

--memory-swap=0或者不加

容器使用swap交换分区的大小是限制的内存值的两倍

-m 512m --memory-swap=512m

容器不能使用swap交换分区

-m 512m --memory-swap=-1

内存还是受限,内存只能用512m,使用交换分区不再受限制,宿主机有多少swap空间,容器就可以使用多少

磁盘限制(不重要)

磁盘读写速度的限制,磁盘的读次数限制和写次数限制

1、对磁盘的读进行限制:
[root@docker1 cpu]# docker run -itd --name test6 --device-read-bps /dev/sda:1M centos:7 /bin/bash
#容器在磁盘上每秒只能读1M

单位:

kb k

mb m

gb g

2、对磁盘的写进行限制:
[root@docker1 cpu]# docker run -itd --name test6 --device-write-bps /dev/sda:1M centos:7 /bin/bash
#容器在磁盘上每秒只能写1M
3、对磁盘的读次数进行限制
[root@docker1 cpu]# docker run -itd --name test6 --device-read-iops /dev/sda:100  centos:7 /bin/bash
4、对磁盘的写次数进行限制
[root@docker1 cpu]# docker run -itd --name test6 --device-write-iops /dev/sda:100  centos:7 /bin/bash

清理容器的残留(要谨慎使用):
[root@docker1 cpu]# docker system prune -a 
#清理容器的残留,删除停止运行的容器,删除无用的数据卷和网络

课后练习:

实验一

设置3个权重 256 768 2048

3个容器设置绑定到cpu 0

操作:

[root@docker1 opt]# docker run -itd --name test1 --cpu-shares 256 --cpuset-cpus 0 centos:7 /bin/bash
[root@docker1 opt]# docker cp /etc/yum.repos.d/ test1:/etc/yum.repos.d
​
[root@docker1 opt]# docker run -itd --name test2 --cpu-shares 768 --cpuset-cpus 0 centos:7 /bin/bash
[root@docker1 opt]# docker cp /etc/yum.repos.d/ test2:/etc/yum.repos.d
​
[root@docker1 opt]# docker run -itd --name test3 --cpu-shares 2048 --cpuset-cpus 0 centos:7 /bin/bash
[root@docker1 opt]# docker cp /etc/yum.repos.d/ test3:/etc/yum.repos.d

实验结果:

cpu的限制和绑定cpu一般是一起使用的

实验二:

绑定到指定的cpu1 设置占用cpu的比重是25%

同时限制内存使用率512m

[root@docker1 opt]# docker run -itd --name test4  --cpu-quota 25000 --cpuset-cpus 1 -m 512m --memory-swap=1g centos:7 /bin/bash

相关文章:

docker数据卷:

docker数据卷: 容器和宿主机之间数据共享 容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载,实现数据文件共享 容器的生命周期有限,一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始…...

【linux】linux中如何通过systemctl来创建和管理服务

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

WPF-实现多语言的静态(需重启)与动态切换(不用重启)

目录 一、多语言切换(需重启) 1、配置文件添加Key 2、新增附加属性当前选择语言 3、创建资源文件 4、初始化多语言集合 5、切换多语言并更新配置文件 6、应用程序启动根据配置切换多语言 7、使用 二、多语言切换(无需重启)…...

UE5学习笔记12-为角色添加蹲下的动作

一、一点说明 1.蹲下使用了ACharacter类中Crouch();函数,函数功能是先检查是否存在运动组件,将bool类型的变量变为true,该变量代表是想要蹲下。 2.通过源码可知存在是否蹲下的bool变量bIsCrouched如图,如果对:1有疑问请搜索C位域 …...

【笔记】Android 多用户模式和用户类型

简介 用户界面:System 》Multiple Users 》 开关多用户模式。 一般是不同用户模式下,有修改Settings应用配置的权限差异,因此需要通过用户类型对功能进行判断限制。 代码 通过UserManager可以获取当前用户的信息。 frameworks/base/core/…...

SQL基础——MySQL的索引

简介:个人学习分享,如有错误,欢迎批评指正。 一、概述 介绍 索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表&…...

【开发语言】面向对象和面向过程开发思路的区别

引入: 我总结了 面向过程的开发语言思路:1.我要干啥?2.怎么才能实现 面向对象的开发语言思路:1.我要研究谁?2.他能干啥 详解: 面向过程的开发语言思路 我要干啥? 在面向过程的开发中&a…...

谷歌账号登录的时候提示被停用,原因是什么,账号还有救吗?该如何处理?

今日早上,有个久违的朋友找到我说,要恢复账号。 他的情况是这样的:7月21日的时候,他发现自己的谷歌账号登录的时候提示活动异常先,需要输入手机号码验证才能恢复账号。但是输入了自己和亲友们的多个手机号码都无法验证…...

数据库复习笔记

写在最前, 写文章的初衷只是为了复习与记录自己的成长,笔者目前水平还有待提高,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~ 第八章 T-SQL程序结构 8.…...

学习STM32(6)-- STM32单片机ADCDAC的应用

1 引 言 深入了解并掌握STM32F103单片机在模拟数字转换(ADC)和数字模拟转换(DAC)应用方面的功能和操作。学习如何配置STM32F103的ADC模块,实现模拟信号到数字信号的精确转换;同时,探索DAC模块…...

学习记录第二十五天

wait函数 wait函数是一个系统调用&#xff0c;用于等待一个子进程结束并回收其资源。当父进程调用wait函数时&#xff0c;它会暂停执行&#xff0c;直到至少有一个子进程结束。wait函数的原型如下&#xff1a; #include <sys/types.h> #include <sys/wait.h>pid_…...

C语言:字符串函数strcmp

该函数用于比较两个字符串是否一样。 使用方法如下&#xff1a; #include<stdio.h> #include<string.h>int main() {//strcmp函数返回值有三种情况&#xff0c;小于零时返回-1&#xff0c;等于零&#xff0c;大于零时返回1printf("%d\n", strcmp("…...

【数据分析---偏企业】 Excel操作

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 Excel操作前 必看 Python 初阶 Python—语言基础与…...

Ajax-01.原生方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Ajax-原生方式</title> </head> <!-…...

OpenAI GPT-2 model use with TensorFlow JS

题意&#xff1a;使用 TensorFlow JS 应用 OpenAI GPT-2 模型 问题背景&#xff1a; Is that possible to generate texts from OpenAI GPT-2 using TensorFlowJS? 是否可以使用 TensorFlowJS 生成 OpenAI GPT-2 的文本&#xff1f; If not what is the limitation, like mo…...

JVM-运行数据区(堆、栈、元空间)

文章声明&#xff1a;文章图片均来自互联网&#xff0c;因为本人画的图不够生动。 运行数据区是JVM最重要的一个区域。 运行数据区由栈、堆、元空间构成。 栈&#xff1a;程序计数器、JVM虚拟机栈&#xff0c;本地方法栈 本地方法栈&#xff1a;加载native修饰的方法&#…...

超详细!!! LVS(Linux virual server)负载均衡知识及其NAT模式、DR模式、火墙标记实验

目录 前言系统性能扩展方式集群Cluster分布式集群与分布式 四层转发与七层转发的区别 LVS&#xff08;Linux virual server&#xff09;一、LVS介绍LVS相关概念 二、LVS集群结构体系1. 负载均衡层&#xff08;Load Balancer&#xff09;2. 服务器群组层&#xff08;Server Pool…...

信息学奥赛一本通1259:【例9.3】求最长不下降序列

题目&#xff1a; 1259&#xff1a;【例9.3】求最长不下降序列 时间限制: 1000 ms 内存限制: 65536 KB 提交数:51218 通过数: 20928 Special Judge 【题目描述】 设有由n(1≤n≤200)n(1≤n≤200)个不相同的整数组成的数列&#xff0c;记为:b(1)、b(2)、……、…...

星露谷模组开发教程#3 事件

首发于Enaium的个人博客 SMAPI提供了一些事件&#xff0c;比如游戏的内容、显示、输入等事件。这些事件可以让我们在游戏中添加自己的逻辑。这一节我们就来看看如何使用这些事件。 注册一个事件 在SMAPI中&#xff0c;我们可以通过IModHelper的Events属性来注册事件。比如我们…...

C语言程序设计(初识C语言后部分)

愿天下无Bug&#xff0c;秀发常驻。 3&#xff09;函数的参数 1.实际参数&#xff08;实参&#xff09;&#xff1a; 真实传给函数的参数&#xff0c;叫实参。 实参可以是&#xff1a;常量、变量、表达式、函数等。 无论实参是何类型的量&#xff0c;在进行函数调用时&#…...

驱动基础开发

1、字符设备传统开发模板 字符设备驱动框架&#xff0c;首先我们需要去用module_init这个宏去修饰整个驱动的入口函数&#xff0c;用module_exit去修饰整个驱动的出口函数&#xff0c;然后还需要用MODULE_LICENSE用于声明模块的许可证类型。 在入口函数里面我们需要注册字符设…...

从苹果AppStore看AI开发者生态

从苹果 App Store 看 AI 开发者生态 在人工智能迅速发展的今天&#xff0c;我们不禁要问&#xff1a;未来的 AI 开发者生态将会是什么样子&#xff1f;为了回答这个问题&#xff0c;我们不妨回顾一下移动互联网时代最成功的开发者生态之一——苹果的 App Store。 通过分析 App …...

【Python学习-UI界面】PyQt5 小部件1-Label

QLabel 对象可用作显示不可编辑的文本、图像或动态GIF影片的占位符。 它还可以用作其他小部件的助记键。 标签可以显示普通文本、超链接或富文本。 1、普通文本 直接双击输入即可 2、添加超链接 选中对应Label&#xff0c;右键选择多信息文本&#xff0c;添加链接&#xff0c…...

【Linux详解】进度条实现 Linux下git 的远程上传

&#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; &#x1f680;前言 &#x…...

Android进阶之路 - res、raw、assets 资源解析、区别对比

那天遇到一个资源目录层级的问题&#xff0c;索性重新整理记录一下&#xff0c;希望能帮到如吾往昔之少年的你们&#xff0c;哈哈哈哈哈哈… 一脸茫然&#xff0c;越写越多&#xff0c;时间成本属实有点大&#xff0c;就当一起来基础扫盲吧 resdrawablemipmapvaluescolor asset…...

从数字化到数智化:消费零售企业如何实现门店数智化管理?

随着信息技术的飞速发展&#xff0c;数字化已成为企业转型的必经之路。然而&#xff0c;数字化本身并不是目的&#xff0c;而是通往数智化的桥梁。数智化&#xff0c;即数据智能化&#xff0c;是指企业通过数字化手段收集和分析数据&#xff0c;进而利用这些数据驱动决策和创新…...

Linux中ES的安装

文章目录 一、ES是什么1.1、ES概念介绍1.2、技术架构1.2.1、Lucene介绍 1.3、ES的工作原理1.4、ES的适用场景 二、安装前的配置2.1、创建普通用户2.2、调整文件描述符数量和虚拟内存2.3、设置shell会话的资源限制&#xff08;软限制和硬限制&#xff09;2.4、增加虚拟内存的设置…...

Redis远程字典服务器(5) —— hash类型详解

目录 一&#xff0c;hash基本情况 二&#xff0c;hash常用命令详解 2.1 hset&#xff0c;hget&#xff0c;hexists&#xff0c;hdel 2.2 hexists&#xff0c;hdel 2.3 hkeys&#xff0c;hvals 2.4 hgetall&#xff0c;hmget 2.5 hlen&#xff0c;hsetnx 2.6 hincrby&am…...

MySQL | 行锁——记录锁、间隙锁 、临键锁、插入意向锁

1、InnoDB中的行锁 行锁&#xff08;Row Lock&#xff09; 也称为记录锁&#xff0c;顾名思义&#xff0c;就是锁住某一行&#xff08;某条记录row&#xff09;。需要注意的是&#xff0c;MySQL服务器层并没有实现行锁机制&#xff0c;行级锁只在存储引擎层实现。 优点&#x…...

【网络编程】TCP通信基础模型实现

tcpSer.c #include <myhead.h> #define SER_IP "192.168.119.143" // 设置IP地址 #define SER_PORT 6666 // 设置端口号 int main(int argc, const char *argv[]) {// 1.创建socketint serfd socket(AF_INET, SOCK_STREAM, 0);// 参数1表示ipv4// 参数2表…...

东北石油大学秦皇岛吧/seo社区

在PHP中&#xff0c;数组函数 prev () 用来将数组的内部指针倒回一位并返回值。 函数语法&#xff1a; prev ( array &$array ) : mixed 函数参数说明&#xff1a; 参数描述array必需。规定要使用的数组。prev() 函数用来将内部指针指向数组中的上一个元素&#xff0c;并…...

防疫网站网页设计/网络营销推广8种方法

词向量模型 Word2Vec Skip-gram 模型是图嵌入模型 Random Walk 中要使用到的模型&#xff0c;因此先学习 Word2Vec 神经网络语言模型 NNLM 目标&#xff1a;根据给定的词序列&#xff0c;预测下一个会出现的词&#xff0c;如给定 “他”&#xff0c;“是”&#xff0c;“一个…...

大型网站开发语言框架工具/软文营销经典案例优秀软文

一&#xff1a;Spring相关API 笔记二程序源码下载 applicationContext&#xff1a;接口类型&#xff0c;代表应用上下文&#xff0c;可以通过其实例获得 Spring 容器中的 Bean 对象 ApplicationContext的实现类 1&#xff09;ClassPathXmlApplicationContext ​ 它是从类的…...

微信微网站开发报价单/百度人工服务24小时热线电话

...

动易网站默认密码/如何进行网络营销

昨日&#xff0c;台湾南海岸一带发生了7.1级地震。这次地震损坏了亚太 2号国际海底光缆 (APCN2) 。一时间&#xff0c;无数与国际网络通讯有关的业务&#xff0c;都经历了致命的堵塞。现代人类对科技的依赖&#xff0c;再一次遭到自然的嘲弄。不提这事对大洋两岸人们带来的诸多…...

内容网站/技能培训有哪些

项目背景提要最近公司经常有测试&#xff0c;产品&#xff0c;开发人员需要我帮忙查看服务器上面发送的短信验证码来完成工作上的一些需求。我们的短信验证码由我们后台程序发出&#xff0c;调用第三方短信平台发送&#xff0c;这中间我们会将短信发送内容记录到日志文件&#…...