DockerFile简明教程
需求
由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh。所以上网也查了查资料。下面详细的纪录下。在centos 容器内安装ssh后,转成新的镜像用于后期测试使用。
镜像定制
第一种方式(手动修改容器镜像)
1.先下载centos镜像
[root@docker ~]# docker pull centos:7
2.启动容器并进行配置
启动容器,
[root@docker ~]# docker run -it -d --name test-centos1 centos:7
d72250ecaa5e3e36226a1edd749f494d9f00eddc4143c81ac3565aa4e551791a
命令注释:-it : 进行交互式操作
-d : 等同于 -d=true,容器将会在后台运行,不然执行一次命令后,退出后,便是exit状态了。
–name : 容器启动后的名字,默认不指定,将会随机产生一个名字。或者使用 -name=“containers_name”
centos:使用的镜像名称
进入容器,安装ssh server,以及配置开机启动
[root@docker ~]# docker exec -it test-centos1 /bin/bash
[root@d72250ecaa5e /]# ifconfig
bash: ifconfig: command not found
注:命令最后参数 /bin/bash: 指进入容器时执行的命令(command)
我们检查了下容器,暂时安装以下必用的软件吧 net-tools,openssh-server
[root@d72250ecaa5e /]# yum install openssh-server net-tools -y
创建ssh 所需的目录,并在根目录创建sshd 启动脚本,输入/usr/sbin/sshd -D
[root@d72250ecaa5e /]# mkdir -pv /var/run/sshd
mkdir: created directory '/var/run/sshd'
[root@d72250ecaa5e /]# cat /auto_sshd.sh
#!/bin/bash
/usr/sbin/sshd -D
[root@d72250ecaa5e /]# chmod +x /auto_sshd.sh
修改容器内root 的账户密码
[root@d72250ecaa5e /]# echo "root:iloveworld" | chpasswd
生成ssh 主机dsa 密钥(不然ssh 该容器时,会出现错误。
[root@d72250ecaa5e /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
[root@d72250ecaa5e /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
我们加一个history记录的时间功能吧,这样方便后期查看
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
OK,配置基本完毕咯。清理命令历史纪录,之后退出容器。现在可以生成一个新的docker 镜像了。
3.配置完成后,进行打包成新的镜像
[root@docker ~]# docker commit test-centos1 centos_sshd:7.0
sha256:6e3330b30dfff5f029f102874e54cfffffbc37dcf2a4eb7304c817148fbc944d
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_sshd 7.0 6e3330b30dff 8 seconds ago 310.1 MB
docker.io/ubuntu latest e4415b714b62 12 days ago 128.1 MB
命令注释:commit: 提交一个具有新配置的容器成为镜像,后面跟容器的name 或者容器Id ,最后是生成新镜像的名字
更新:这条命令更方便以后启动,如下:
[root@docker ~]# docker commit --change='CMD ["/auto_sshd.sh"]' -c "EXPOSE 22" test-centos1 centos_sshd:7.0
sha256:7bb4efd82c4ff1f241cbc57ee45aab1b05d214b1e9fcd51196696c67d480e70b
命令注释: --change : 将后期使用此镜像运行容器时的命令参数、开放的容器端口提前设置好。
4.验证
查看镜像,并启动新的容器
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_sshd 7.0 7bb4efd82c4f 4 minutes ago 310.1 MB
docker.io/ubuntu latest e4415b714b62 12 days ago 128.1 MB[root@docker ~]# docker run -d -it --name centos_7.0-1 centos_sshd:7.0
ec17e553d5c4c60865afeb99df8dfd1f4e7d4ba6e1b0d5516f9127f09d1d6356
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ec17e553d5c4 centos_sshd:7.0 "/auto_sshd.sh" 6 seconds ago Up 5 seconds 22/tcp centos_7.0-1
进行ssh测试,先查看一下该容器的ip,之后ssh。ok,密码使用前面设置的iloveworld
[root@docker ~]# docker exec centos_7.0-1 hostname -i
172.17.0.4[root@docker ~]# ssh root@172.17.0.4
The authenticity of host '172.17.0.4 (172.17.0.4)' can't be established.
RSA key fingerprint is 87:88:07:12:ac:0a:90:28:10:e1:9e:eb:1f:d6:c9:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.4' (RSA) to the list of known hosts.
root@172.17.0.4's password:
Last login: Tue Nov 29 16:00:49 2016 from gateway[root@ec17e553d5c4 ~]# w 16:34:17 up 63 days, 7:49, 1 user, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 gateway 16:34 1.00s 0.00s 0.00s w
[root@ec17e553d5c4 ~]# ping gateway
PING gateway (172.17.0.1) 56(84) bytes of data.
64 bytes from gateway (172.17.0.1): icmp_seq=1 ttl=64 time=0.048 ms
第二种方式(推荐:利用Dockerfile文件)
Dockerfile包含创建镜像所需要的全部指令。基于在Dockerfile中的指令,我们可以使用Docker build命令来创建镜像。通过减少镜像和容器的创建过程来简化部署。
1.创建Dockerfile文件
新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 )
[root@docker ~]# mkdir centos7-dockerfile[root@docker centos7-dockerfile]# cat Dockerfile
# The dockerfile has Change add sshd services on Centos7.0
#centos7:latest image
FROM centos:7MAINTAINER Yifeng,http://www.cnblogs.com/hanyifeng#Install sshd net-tools
RUN yum install openssh-server net-tools -y
RUN mkdir /var/run/sshd#Set password for root
RUN echo 'root:iloveworld' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config#Set history record
ENV HISTTIMEFORMAT "%F %T "#Fix sshd service:Read from socket failed: Connection reset by peer?
RUN ssh-keygen -A#Change timezone CST
RUN \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#Open 22 port
EXPOSE 22#Auto running sshd service
CMD ["/usr/sbin/sshd","-D"]
上述文件内容就是一个dockerfile 常见的命令组合。开头带#号的为注释
文件解释:
FROM: 必不可少的命令,从某个镜像作为基。如 FROM <image_name> ,或者 FROM <image_name>:. 如果不加tag,默认为latest。先从本地镜像仓库去搜索基镜像,如过本地没有,在去网上docker registry去寻找。
MAINTAINER:标明该Dockerfile作者及联系方式,可忽略不写
RUN:建立新的镜像时,可以执行在系统里的命令,如安装特定的软件以及设置环境变量。
ENV:设置系统环境变量(注意:写在/etc/profile里的命令在dockerfile这里会不生效,所以为改成ENV的方式)
EXPOSE:开放容器内的端口,但不和宿主机进行映射。方便在宿主机上进行开发测试。(如需映射到宿主机端口,可在运行容器时使用 -p host_port:container_port)
CMD:设置执行的命令,经常用于容器启动时指定的某个操作。如执行自定义脚本服务,或者是执行系统命令。CMD 只能存在一条,如在Dockerfile中有多条CMD的话,只有最后一条CMD生效!
2.执行build 创建镜像
使用docker build命令来创建镜像
[root@docker centos7-dockerfile]# docker build -t centos_sshd_1 .
-t 选项来docker build新的镜像以便于标记构建的镜像,. 表示当前目录,也可以指定dockerfile 文件所在目录。
下面缩略的内容是构建镜像时的输出,可以看下。
[root@docker centos7-dockerfile]# docker build -t centos_sshd_1 .
Sending build context to Docker daemon 4.096 kB
Step 1 : FROM centos:latest---> 0584b3d2cf6d
Step 2 : MAINTAINER Yifeng,http://www.cnblogs.com/hanyifeng---> Running in da643b55dc77---> 1087074d44e4
Removing intermediate container da643b55dc77
Step 3 : RUN yum install openssh-server net-tools -y---> Running in 5626d8f0f892
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors* base: mirrors.btte.net* extras: mirrors.tuna.tsinghua.edu.cn* updates: mirrors.btte.net
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.17.20131004git.el7 will be installed
---> Package openssh-server.x86_64 0:6.6.1p1-25.el7_2 will be installed
--> Processing Dependency: openssh = 6.6.1p1-25.el7_2 for package: openssh-server-6.6.1p1-25.el7_2.x86_64
--> Processing Dependency: fipscheck-lib(x86-64) >= 1.3.0 for package: openssh-server-6.6.1p1-25.el7_2.x86_64
--> Processing Dependency: libwrap.so.0()(64bit) for package: openssh-server-6.6.1p1-25.el7_2.x86_64
--> Processing Dependency: libfipscheck.so.1()(64bit) for package: openssh-server-6.6.1p1-25.el7_2.x86_64
--> Running transaction check
---> Package fipscheck-lib.x86_64 0:1.4.1-5.el7 will be installed
--> Processing Dependency: /usr/bin/fipscheck for package: fipscheck-lib-1.4.1-5.el7.x86_64
---> Package openssh.x86_64 0:6.6.1p1-25.el7_2 will be installed
---> Package tcp_wrappers-libs.x86_64 0:7.6-77.el7 will be installed
--> Running transaction check
---> Package fipscheck.x86_64 0:1.4.1-5.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved================================================================================Package Arch Version Repository Size
================================================================================
Installing:net-tools x86_64 2.0-0.17.20131004git.el7 base 304 kopenssh-server x86_64 6.6.1p1-25.el7_2 updates 436 k
Installing for dependencies:fipscheck x86_64 1.4.1-5.el7 base 21 kfipscheck-lib x86_64 1.4.1-5.el7 base 11 kopenssh x86_64 6.6.1p1-25.el7_2 updates 435 ktcp_wrappers-libs x86_64 7.6-77.el7 base 66 kTransaction Summary
================================================================================
Install 2 Packages (+4 Dependent packages)Total download size: 1.2 M
Installed size: 3.4 M
Downloading packages:
Public key for fipscheck-lib-1.4.1-5.el7.x86_64.rpm is not installed
warning: /var/cache/yum/x86_64/7/base/packages/fipscheck-lib-1.4.1-5.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for openssh-6.6.1p1-25.el7_2.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total 593 kB/s | 1.2 MB 00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5Package : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@CentOS)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : fipscheck-1.4.1-5.el7.x86_64 1/6 Installing : fipscheck-lib-1.4.1-5.el7.x86_64 2/6 Installing : openssh-6.6.1p1-25.el7_2.x86_64 3/6 Installing : tcp_wrappers-libs-7.6-77.el7.x86_64 4/6 Installing : openssh-server-6.6.1p1-25.el7_2.x86_64 5/6 Installing : net-tools-2.0-0.17.20131004git.el7.x86_64 6/6 Verifying : openssh-6.6.1p1-25.el7_2.x86_64 1/6 Verifying : openssh-server-6.6.1p1-25.el7_2.x86_64 2/6 Verifying : net-tools-2.0-0.17.20131004git.el7.x86_64 3/6 Verifying : tcp_wrappers-libs-7.6-77.el7.x86_64 4/6 Verifying : fipscheck-lib-1.4.1-5.el7.x86_64 5/6 Verifying : fipscheck-1.4.1-5.el7.x86_64 6/6 Installed:net-tools.x86_64 0:2.0-0.17.20131004git.el7 openssh-server.x86_64 0:6.6.1p1-25.el7_2 Dependency Installed:fipscheck.x86_64 0:1.4.1-5.el7 fipscheck-lib.x86_64 0:1.4.1-5.el7 openssh.x86_64 0:6.6.1p1-25.el7_2 tcp_wrappers-libs.x86_64 0:7.6-77.el7 Complete!---> 7b249ed8cb54
Removing intermediate container 5626d8f0f892
Step 4 : RUN mkdir /var/run/sshd---> Running in fc94a139d438---> ea2826eccc91
Removing intermediate container fc94a139d438
Step 5 : RUN echo 'root:iloveworld' | chpasswd---> Running in ba53283081a7---> 7ce1ddb5d9c0
Removing intermediate container ba53283081a7
Step 6 : RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config---> Running in 4112281a5bf0---> be21fb6b5b1e
Removing intermediate container 4112281a5bf0
Step 7 : ENV HISTTIMEFORMAT "%F %T "---> Running in f2081726e403---> f3fafca42170
Removing intermediate container f2081726e403
Step 8 : RUN ssh-keygen -A---> Running in 2ca9e743dee7
ssh-keygen: generating new host keys: RSA1 RSA DSA ECDSA ED25519 ---> 1a927943bee7
Removing intermediate container 2ca9e743dee7
Step 9 : RUN \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime---> Running in afd43cc6d4d6---> 4a0cacf6cd72
Removing intermediate container afd43cc6d4d6
Step 10 : EXPOSE 22---> Running in a03551bc3bcb---> 3af544106bf4
Removing intermediate container a03551bc3bcb
Step 11 : CMD /usr/sbin/sshd -D---> Running in f45fe5eb5561---> d4620c9949b8
Removing intermediate container f45fe5eb5561
Successfully built d4620c9949b8
docker build stdout
3.查看镜像列表,并创建容器
[root@docker centos7-dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_sshd_1 latest d4620c9949b8 4 minutes ago 308.4 MB
centos_sshd 7.0 7bb4efd82c4f 2 days ago 310.1 MB
我们刚刚新建的容器已经存在了,现在用它来创建容器
[root@docker centos7-dockerfile]# docker run -d -it --name centos-two centos_sshd_1
7ae51091c138d249b5e97f6957073e748db278c0f1cf856e968ca78a4aec1a5b查看容器
[root@docker centos7-dockerfile]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ae51091c138 centos_sshd_1 "/usr/sbin/sshd -D" 16 seconds ago Up 15 seconds 22/tcp centos-two
👌,可以看到容器的command 就是我们之前定义启动ssh 服务的,并且开放了22端口。
现在我们在宿主机上查看下该容器的ip,然后用ssh 链接进去。
[root@docker ~]# docker exec centos-two hostname -I
172.17.0.7[root@docker ~]# ssh root@172.17.0.7
The authenticity of host '172.17.0.7 (172.17.0.7)' can't be established.
ECDSA key fingerprint is 7a:38:69:d7:5e:f4:db:e8:3c:ea:92:a4:1a:a1:7b:9a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.7' (ECDSA) to the list of known hosts.
root@172.17.0.7's password:
[root@7ae51091c138 ~]# w11:19:34 up 65 days, 18:34, 1 user, load average: 0.01, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 gateway 11:19 6.00s 0.00s 0.00s w
OK。
相关文章:

DockerFile简明教程
需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh。所以上网也查了查资料。下面详细的纪录下。在centos 容器内安装ssh后,转成新的镜像用于后期测试使用。 镜像定制 第一种…...

Cygwin是什么?是Windows还是Linux?
原文作者:gentle_zhou 原文链接:https://bbs.huaweicloud.com/blogs/408674 最近在和客户交流的时候,一直以为客户的研发环境就是windows 7,直到和对面的研发团队交流的时候,得到的反馈是在windows 7系统上安装了Cygw…...

成集云 | 多维表格自动化管理jira Server项目 | 解决方案
源系统成集云目标系统 方案介绍 基于成集云集成平台,在多维表格中的需求任务信息自动创建、更新同步至 Jira Server 的指定项目中,实现多维表格中一表管理 Jira Server 中的项目进度。 维格表是一种新一代的团队数据协作和项目管理工具&…...

数据结构(Java实现)-排序
排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序ÿ…...

C++------vector【STL】
文章目录 vector的介绍及使用vector的介绍vector的使用 vector的模拟实现 vector的介绍及使用 vector的介绍 1、vector是表示可变大小数组的序列容器。 2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数…...

Matlab(变量与文本读取)
目录 1.变量(数据)类型转换 1.1 字符 1.2 字符串 1.3 逻辑操作与赋值 2.Struct结构体数组 2.1函数的详细介绍: 2.1.1 cell2struct 2.1.1.1 垂直维度转换 2.1.1.2 水平维度转换 2.1.1.3 部分进行转换 2.1.2 rmfield 2.1.3 fieldnames(查…...

WebGPU学习(8)---使用RenderBundle
RenderBundle是什么 通常情况下,WebGPU每次绘制时都需要向RenderPassEncoder注册渲染命令。处理此绘图命令比 WebGL 内部执行的类似处理更快。但是,如果可以省略此命令注册过程,则可以能够更快地绘制。RenderBundle 就是实现这一点的。 Ren…...

【前端】常用功能合集
目录 js跳转到新标签打开PDF文件js每十个字符换行 es6用表达式或变量名作为对象的属性名 vuev-for插值、:style、:class父组件加载完后再加载子组件keep-alive缓存跨域请求第三方接口跨域请求之callback(不建议)读取本地文件浏览器播放提示音audio jquer…...

chatgpt谈论日本排放污水事件
W...Y的主页 😊 代码仓库分享 💕 近日,世界发生了让人义愤填膺的时间——日本排放核污水。这件事情是那么的突然且不计后果,海洋是我们全人类共同的财产,而日本却想用自己一己私欲将全人类的安全置之度外,…...

Linux 查看当前目录大小
分析&回答 1. 查看当前目录下所有目录及子目录大小 du -h - . “.”代表当前目录下。也可以换成一个明确的路径 复制代码 2.查看当前文件目录各个文件夹大小 du -h --max-depth1 复制代码 查看指定目录 du -h --max-depth1 /path 复制代码 -h表示用K、M、G的人性化形…...

操作系统备考学习 day1 (1.1.1-1.3.1)
操作系统备考学习 day1 计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的四个特征并发共享虚拟异步 操作系统的发展和分类操作系统的运行环境操作系统的运行机制 年初做了一个c的webserver 的项目,在学习过程中已经解除部分操作系统的知识&am…...

HTTP:http上传文件的原理及java处理方法的介绍
为了说明原理,以下提供一个可以上传多个文件的例子,html页面代码如下: <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>http upload file</title> </head> <body>…...

[实习笔记] 字符串练习 (将大量的字符串用int值编码,然后通过int值二分快速查找某个字符串)
目录 介绍分析完整代码: 免责声明: 本文章是实习期间的C练习题目,可能会存在大量错误,文章仅作为个人笔记供作者自己方便观看. 介绍 在一个游戏里,可能会出现大量的NPC, 这些NPC有很多都是相同的名字. 存放NPC名字的…...

EMC VNX2代一键关机方法
由于不正确的EMC VNX存储系统的关机导致客户业务中断,数据丢失的案例数不胜数。不正确的关机顺序,很容易造成内存中的数据丢失,进而导致dirty cache,然后系统的LUN和POOL就无法online,业务中断。本文仅仅对EMC 2代产品…...

提升系统管理:监控和可观察性在DevOps中的作用
在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康和性能提供了宝贵的可见性。虽然这些术语经常可以互换使用,但它们代表着理解和管理复杂…...

IIS搭建本地电脑服务器:通过内网穿透技术实现公网访问的步骤指南
1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们…...

Linux系统中驱动入门设备树DTS(经典)
设备树(DTS:device tree source),字面意思就是一块电路板上设备如上图中CPU、DDR、I2C、GPIO、SPI等,按照树形结构描绘成的一棵树。按照策略和功能分离的思路,就是驱动代码(功能)和设备树DTS配置…...

关系型数据库与非关系型数据库类比
关系型数据库和非关系型数据库都有多种不同类型,每种类型都针对不同的数据存储需求和使用场景。以下是一些常见的关系型数据库和非关系型数据库类型: 关系型数据库类型: MySQL: 一种开源的关系型数据库管理系统,用于处…...

Ubuntu入门03——Ubuntu用户操作
1.Ubuntu如何进入root用户 进入ROOT用户的指令: Linux用su命令来切换用户: su root执行命令后,会提示你输入密码,而Ubuntu是没有设置root初始密码的。 若su命令不能切换root,提示su: Authentication failure&#x…...

输出图元(四)8-1 图元、屏幕坐标、指定二维世界坐标系统
用于图形应用的通用软件包称为计算机图形应用编程接口(CCAPI)它提供可以在C等程序设计语言中用来创建图形的函数库。如第3 章所指出的,函数库可以分成几种类型。创建图形时最先要做的一件事就是要描述显示场景的组成部分。图形的组成部分可以是树木和地形家具和墙壁…...

机器学习---决策树的划分依据(熵、信息增益、信息增益率、基尼值和基尼指数)
1. 熵 物理学上,熵 Entropy 是“混乱”程度的量度。 系统越有序,熵值越低;系统越混乱或者分散,熵值越⾼。 1948年⾹农提出了信息熵(Entropy)的概念。 从信息的完整性上进⾏的描述:当系统的有序…...

java解析json
1. 解析根节点为“{}”的json {"id": 1525490,"name": "有缘网" }代码: String jsonString "{\"id\":1525490\",\"name\":\"有缘网\"}";JSONObject jsonObject JSONObject.…...

PAT 1163 Dijkstra Sequence
个人学习记录,代码难免不尽人意。 Dijkstra’s algorithm is one of the very famous greedy algorithms. It is used for solving the single source shortest path problem which gives the shortest paths from one particular source vertex to all the other v…...

嵌入式学习之进程
1.进程间通信概述 UNIX系统IPC是各种进程通信方式的统称。 2.管道通信原理 特点: 1.它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。 2.它只能用于具有亲缘关系的进程之间通信(也是父子进程或者…...

C#-单例模式
文章目录 单例模式的概述为什么会有单例模式如何创建单例模式1、首先要保证,该对象 有且仅有一个2、其次,需要让外部能够获取到这个对象 示例通过 属性 获取单例 单例模式的概述 总结来说: 单例 就是只有 一个实例对象。 模式 说的是设计模式…...

WSNs 安全技术
WSNs 多用于军事,特殊现场的警戒保护、商业区域的安防,作为任务型网 络,不仅要进行数据传输,而且要进行数据采集和融合,任务的协同控制等,如何 保证任务执行的机密性,数据产生的可靠性数据融合…...

H5如何做页面下拉刷新和上拉加载
这里以vant为例 结构 <van-pull-refreshv-model"isLoading"success-text"刷新成功"refresh"onRefresh"><van-liststyle"height:100%"v-model"loading":finished"finished"finished-text"没有更多了…...

Camunda 7.x 系列【42】事件子流程
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 案例演示2.1 流程模型2.2 测试1. 概述 事件子流程是由事件触发的子流程,可存在…...

JVM类的加载过程
加载过程 JVM的类的加载过程分为五个阶段:加载、验证、准备、解析、初始化。 加载 加载阶段就是将编译好的的class文件通过字节流的方式从硬盘或者通过网络加载到JVM虚拟机当中来。(我们平时在Idea中书写的代码就是放在磁盘中的,也可以通…...

Jmeter如何设置中文版
第一步:找到 apache-jmeter-5.4.3\bin目录下的 jmeter.properties 第二步:打开 三,ctrf 输入languageen,注释掉,增加以行修改如下 四,ctrs 保存修改内容,重新打开jmeter就可以了...