上篇博文中提到了在实际工作中构建镜像更多使用的Dockerfile,今天我们再来详细的看看这个有趣有内涵的小可爱。

一、Dockerfile构建镜像的流程

还是简简单单的看下上篇博文中最后的Dockerfile。

#Version:0.0.1  # 版本信息
FROM centos:latest  # 表示从哪个基础镜像开始构建
MAINTAINER Yuan "earlyuan@163.com"  # 表示作者以及邮箱# 以下就是Dockerfile的执行,每条命令都是以RUN来开始,表示开始执行命令。这里很简单的跳转到根目录下,创建readme目录,在readme目录下再创建readme.md文件,并向其中写入内容
RUN cd /
RUN mkdir readme
RUN touch /readme/readme.md
RUN echo "This is readme file created by dockerfile" > /readme/readme.md

以上内容很简单,

  1. 进入根目录。
  2. 创建readme。
  3. 在/readme/下创建readme.md文件。
  4. 向readme.md文件中追加内容。

执行命令docker build -t="centos/dockerfile_test:0.0.1" .后会有如下输出:

[root@localhost dockerfile_test]# docker build -t="centos/dockerfile_test:0.0.1" .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM centos:latest---> 470671670cac
Step 2/6 : MAINTAINER Yuan "earlyuan@163.com"---> Running in 4452ab2a7bbf
Removing intermediate container 4452ab2a7bbf---> 9c9b6692a1dc
Step 3/6 : RUN cd /---> Running in 386c520eb51f
Removing intermediate container 386c520eb51f---> 7b621d54b17b
Step 4/6 : RUN mkdir readme---> Running in 97c3cc32af97
Removing intermediate container 97c3cc32af97---> c781c868ece5
Step 5/6 : RUN touch /readme/readme.md---> Running in e60270cfa7af
Removing intermediate container e60270cfa7af---> 5b1b86a3daf4
Step 6/6 : RUN echo "This is readme file created by dockerfile" > /readme/readme.md---> Running in 7ff787a8a110
Removing intermediate container 7ff787a8a110---> d3a80ce9dda6
Successfully built d3a80ce9dda6
Successfully tagged centos/dockerfile_test:0.0.1

由上面的输出可以大致了解到通过Dockerfile执行docker build命令构建镜像的流程,如下:

  1. 从基础镜像运行一个容器,如Step 1/6。
  2. 执行一条Dockerfile里RUN指令后配置的操作命令,对当前容器做出修改。
  3. 在Docker内部执行类似于docker commit的操作,将当前操作容器提交成一个缓存的新镜像。
  4. Docker再基于刚构建的缓存的新镜像再运行一个容器,在该容器中继续执行Dockerfile里配置的指令,直到所有指令执行完成。

以上是正确的Dockerfile构建的过程,如果在其中RUN指令后的某一步骤配置错误,那么就不会完成正确的构建,但是会生成已经成功的最后一步的那个镜像,我们可以根据该镜像创建出容器,进入到容器内部调测我们错误的那一步配置。例如,如果我把RUN touch /readme/readme.md写成了RUN tauch /readme/readme.md那么执行构建的时候,就会有如下输出:

[root@localhost dockerfile_test]# docker build -t="centos/dockerfile_test:0.0.2.error" .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM centos:latest---> 470671670cac
Step 2/6 : MAINTAINER Yuan "earlyuan@163.com"---> Using cache---> 9c9b6692a1dc
Step 3/6 : RUN cd /---> Using cache---> 7b621d54b17b
Step 4/6 : RUN mkdir readme---> Using cache---> c781c868ece5
Step 5/6 : RUN tauch /readme/readme.md---> Running in dae2437bf215
/bin/sh: tauch: command not found
The command '/bin/sh -c tauch /readme/readme.md' returned a non-zero code: 127

输出显示执行到第5步时出现了错误,因此我们可以使用第4步构建出来的镜像ID是c781c868ece5的镜像运行容器,docker run -it c781c868ece5 /bin/bash,进入容器调测第5步执行的命令。当然这里很简单看起来不需要进入容器调测就可以知道是哪里出了问题,但是对于一些更为复杂的指令编排,进入容器查看就会更加方便了。

这里要注意的是,虽然说每一步执行都提交了一个新的缓存镜像,但是当执行出问题时,我们并不可以通过docker images查询到出问题以前提交的缓存镜像,这个缓存镜像是在Docker内部有效而不对使用者可见的。此外,有趣的是,我们不能通过docker images查询到缓存镜像,但是我们为了排查问题原因根据缓存镜像创建的容器,在执行docker ps命令时,在容器列表中却是可以看到缓存镜像ID。

对于镜像是如何构建的,我们可以通过docker history 镜像ID来查看构建过程,如下是文章开篇正常构建dockerfile_test:0.0.1镜像的历史过程,可以看到Dockerfile中配置命令的执行步骤:

[root@localhost dockerfile_test]# docker history d3a80ce9dda6
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
d3a80ce9dda6        10 days ago         /bin/sh -c echo "This is readme file created…   42B                 
5b1b86a3daf4        10 days ago         /bin/sh -c touch /readme/readme.md              0B                  
c781c868ece5        10 days ago         /bin/sh -c mkdir readme                         0B                  
7b621d54b17b        10 days ago         /bin/sh -c cd /                                 0B                  
9c9b6692a1dc        10 days ago         /bin/sh -c #(nop)  MAINTAINER Yuan "earlyuan…   0B                  
470671670cac        4 months ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           4 months ago        /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B                  
<missing>           4 months ago        /bin/sh -c #(nop) ADD file:aa54047c80ba30064…   237MB

二、Dockerfile指令

  1. CMD

CMD指令用于指定容器启动时要运行的命令。格式为CMD [命令,命令执行参数1,命令执行参数2...]。CMD指令是在数据结构中存放所有要执行的命令,需要注意的是这里的命令只可以有一条。说点有趣的话题吧,我在刚开始接触这个指令的时候,看到CMD指令存放在数组中,我天真地认为这里可以放多条命令,于是乎在我放了多条命令后,虽然也构建了镜像,但是根据该镜像启动容器时却报错了,提示error: garbage option,在我以为容器创建失败时,通过docker ps -a命令查询容器时又意外的可以查询到这个容器。这里说这个题外话是想提醒大家,CMD虽然是数组结构存放,但是只能在数组第一个元素存放命令,后面的元素均为第一条命令的参数。下面看一个CMD指令的小例子:

[root@localhost dockerfile_command_test]# vi command_test_first 
#Version:0.0.1
FROM centos:latest
MAINTAINER Yuan "earlyuan@163.com"
CMD ["/bin/ps","-aux"]

上面的Dockerfile中我设置了一条CMD指令,在容器启动时执行ps -aux命令。使用命令docker build -t="centos/command_test_first:0.0.1" -f /opt/earl_docker_test/dockerfile_command_test/command_test_first .构建镜像后,执行命令docker run -it centos/command_test_first:0.0.1可以看到如下输出:

[root@localhost dockerfile_command_test]# docker run -it centos/command_test_first:0.0.1 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  46340  1700 pts/0    Rs+  05:53   0:00 /bin/ps -aux

在容器启动时,查询了系统进程的信息。这个时候可以通过docker ps -a命令查询容器列表,可以看到有一个创建了但是刚刚退出的容器,这就是我们通过上述镜像创建的容器,因为没有执行/bin/bash的原因,所以容器执行完ps -aux命令后就退出运行了。

针对上面的现象,如果我们不希望容器启动就停止运行了,我们可以在执行docker run命令的时候再次指定启动容器时要运行的命令,因为docker run命令是可以覆盖CMD指令的,例如docker run -it centos/command_test_first:0.0.1 /bin/bash,这样就在启动容器后,创建了shell窗口,可以对容器内部进行操作。

  1. ENTRYPOINT

ENTRYPOINT指令与CMD指令非常类似,但是它们有一个非常大的区别就是CMD指令会被docker run命令中的参数所覆盖,而ENTRYPOINT不会被覆盖,实际上,docker run命令中的任何参数都可以被当做参数传递给ENTRYPOINT指令中指定的命令。比如我们看下面这个例子:

[root@localhost dockerfile_entrypoint_test]# vi command_entrypoint 
#Version:0.0.1
FROM centos:latest
MAINTAINER Yuan "earlyuan@163.com"
ENTRYPOINT ["/bin/ls"]

执行命令docker build -t="centos/command_test_second:0.0.1" -f /opt/earl_docker_test/dockerfile_entrypoint_test/command_entrypoint .构建镜像后,我们通过镜像启动容器,输入如下命令docker run -it centos/command_test_second:0.0.1 "-l",可以看到docker run命令后有一个参数"-l",于是乎我们就得到了如下的输出:

[root@localhost dockerfile_entrypoint_test]# docker run -it centos/command_test_second:0.0.1 "-l"
total 0
lrwxrwxrwx.   1 root root   7 May 11  2019 bin -> usr/bin
drwxr-xr-x.   5 root root 360 Jun  9 05:28 dev
drwxr-xr-x.   1 root root  66 Jun  9 05:28 etc
drwxr-xr-x.   2 root root   6 May 11  2019 home
lrwxrwxrwx.   1 root root   7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root   9 May 11  2019 lib64 -> usr/lib64
drwx------.   2 root root   6 Jan 13 21:48 lost+found
drwxr-xr-x.   2 root root   6 May 11  2019 media
drwxr-xr-x.   2 root root   6 May 11  2019 mnt
drwxr-xr-x.   2 root root   6 May 11  2019 opt
dr-xr-xr-x. 113 root root   0 Jun  9 05:28 proc
dr-xr-x---.   2 root root 162 Jan 13 21:49 root
drwxr-xr-x.  11 root root 163 Jan 13 21:49 run
lrwxrwxrwx.   1 root root   8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root   6 May 11  2019 srv
dr-xr-xr-x.  13 root root   0 Jun  9 03:04 sys
drwxrwxrwt.   7 root root 145 Jan 13 21:49 tmp
drwxr-xr-x.  12 root root 144 Jan 13 21:49 usr
drwxr-xr-x.  20 root root 262 Jan 13 21:49 var

容器创建成功,并且将"-l"参数传递给了Dockerfile中我们定义的ENTRYPOINT指令后的命令/bin/ls,输出了当前目录下的详细信息。

我们可以使用ENTRYPOINT和CMD组合起来玩点有趣的东西,就像下面的例子:

[root@localhost dockerfile_entrypoint_test]# vi command_entrypoint 
#Version:0.0.1
FROM centos:latest
MAINTAINER Yuan "earlyuan@163.com"
ENTRYPOINT ["/bin/ls"]
CMD ["-alt"]

执行命令docker build -t="centos/command_test_second:0.0.2" -f /opt/earl_docker_test/dockerfile_entrypoint_test/command_entrypoint .构建镜像后,我们通过镜像启动容器,输入如下命令docker run -it centos/command_test_second:0.0.2,这次我们不给启动命令传递参数,于是乎我们就得到了如下的输出:

[root@localhost dockerfile_entrypoint_test]# docker run -it centos/command_test_second:0.0.2
total 0
drwxr-xr-x.   5 root root 360 Jun  9 14:46 dev
dr-xr-xr-x. 114 root root   0 Jun  9 14:46 proc
drwxr-xr-x.   1 root root   6 Jun  9 14:46 .
drwxr-xr-x.   1 root root   6 Jun  9 14:46 ..
drwxr-xr-x.   1 root root  66 Jun  9 14:46 etc
-rwxr-xr-x.   1 root root   0 Jun  9 14:46 .dockerenv
dr-xr-xr-x.  13 root root   0 Jun  9 03:04 sys
dr-xr-x---.   2 root root 162 Jan 13 21:49 root
drwxr-xr-x.  11 root root 163 Jan 13 21:49 run
drwxrwxrwt.   7 root root 145 Jan 13 21:49 tmp
drwxr-xr-x.  20 root root 262 Jan 13 21:49 var
drwxr-xr-x.  12 root root 144 Jan 13 21:49 usr
drwx------.   2 root root   6 Jan 13 21:48 lost+found
lrwxrwxrwx.   1 root root   7 May 11  2019 bin -> usr/bin
drwxr-xr-x.   2 root root   6 May 11  2019 home
lrwxrwxrwx.   1 root root   7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root   9 May 11  2019 lib64 -> usr/lib64
drwxr-xr-x.   2 root root   6 May 11  2019 media
drwxr-xr-x.   2 root root   6 May 11  2019 mnt
drwxr-xr-x.   2 root root   6 May 11  2019 opt
lrwxrwxrwx.   1 root root   8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root   6 May 11  2019 srv

可以看到,即使我们没有指定启动参数,在根据Dockerfile创建的镜像启动时,依旧会将CMD指令的配置作为参数继续执行。如果我们指定了启动参数,那么根据docker run会覆盖CMD的原则,那么就不会执行Dockerfile中CMD的配置了。

  1. WORKDIR

在容器内部设置工作目录。我们可以使用WORKDIR指令在Dockerfile中指定接下来的操作的工作目录,类似于linux命令行cd到某个目录下进行操作。我们来看个例子:

[root@localhost dockerfile_workdir_test]# vi command_workdir 
#Version:0.0.1
FROM centos:latest
MAINTAINER Yuan "earlyuan@163.com"RUN yum install -y wget
RUN mkdir /opt/download
WORKDIR /opt/download
RUN wget https://mirrors.aliyun.com/centos/7.8.2003/sclo/x86_64/rh/Packages/r/rh-nginx116-nginx-1.16.1-4.el7.x86_64.rpm

上面的例子中,我们先通过yum安装了wget命令,由于设置的工作目录必须存在,才可以使用WORKDIR指令,所以我们必须先创建一个目录download,然后设置工作目录,最后使用wget命令进行资源的下载。

执行命令docker build -t="centos/command_test_third:0.0.1" -f /opt/earl_docker_test/dockerfile_workdir_test/command_workdir .构建镜像后,我们通过镜像启动容器,可以在/opt/download目录下看到我们刚刚下载的rpm包。

如果我们偶尔有这样的需求,那就是在Dockerfile中通过WORKDIR指令指定了工作目录,但是在创建容器时需要使用另外的路径作为工作目录,那么怎么办呢?Docker为我们提供了这样一个参数,“docker run -w newWorkDir”,我们来看下面这个例子。我们在创建容器时输入以下的命令docker run -it -w /home centos:latest pwd,这行命令会使用centos基础镜像创建一个容器,并将工作目录设定到/home目录下,再输出当前目录路径。

[root@localhost dockerfile_workdir_test]# docker run -it -w /home centos:latest pwd
/home
  1. ENV

ENV指令用于设置环境变量。我们先来看下面这个例子:

[root@localhost dockerfile_env_test]# vi command_env 
#Version:0.0.1
FROM centos:latest
MAINTAINER Yuan "earlyuan@163.com"ENV MY_TEST_DIR /opt/test
RUN mkdir $MY_TEST_DIR
RUN echo "i love docker" > $MY_TEST_DIR/test.txt

我们设置了环境变量MY_TEST_DIR,并通过“$变量名”的方式引用它的值,在其中创建文件,写入内容。通过命令docker build -t="centos/command_test_fourth:0.0.1" -f /opt/earl_docker_test/dockerfile_env_test/command_env .构建镜像后,我们根据镜像启动容器,可以看到在/opt/test目录下创建了test.txt文件,并在其中有i love docker的内容。我们可以在容器内输入命令env,可以看到有如下输出:

[root@5c371ca0128e test]# env
LANG=en_US.UTF-8
HOSTNAME=5c371ca0128e
OLDPWD=/opt
PWD=/opt/test
HOME=/root
MY_TEST_DIR=/opt/test
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/usr/bin/env

可以看到MY_TEST_DIR已经设置到环境变量中了。环境变量一旦设置成功,根据其镜像创建的容器中也将永久有效。

(未完待续…)

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. ObjectC基础之指针学习

    如果有过其他语言基础的话,Object-C的指针可能就是Java中的变量了。 在Object-C中每个变量都存有了一个内存地址,而且每个内存地址都定义了他的地址,可以使用符合&运算符进行访问,该符合表示内存中的地址。 #import <Foundation/Foundation.h>int main () {int …...

    2024/4/18 16:13:16
  2. Lynis介绍与使用

    文章目录lynis简介Lynis受众与用例支持的系统Audit步骤Lynis插件Available plugins审查示例审查恶意软件审计一致性审计模块明细表Test-ID 详细 lynis简介 Lynis是一款Unix系统的安全审计以及加固工具,能够进行深层次的安全扫描,其目的是检测潜在的时间并对未来的系统加固提供…...

    2024/4/19 8:17:28
  3. JAVA代理模式

    https://www.jianshu.com/p/4de2e59e763e...

    2024/4/19 18:17:27
  4. SpringCloud 初学 pom配置

    b站视频p6 properties、dependencyManagement和build原版配置 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</mav…...

    2024/4/20 2:50:32
  5. 基于Spring+SpringMVC+MyBatis框架的分页查询

    前端点击按钮>>>controller层接受QueryVo和前端带过来的数据>>>调用service层产生PageModel对象>>>service层接受到QueryVo,填充起始页start,调用dao层计算出总记录数和第一页的数据集合,通过当前页的页数(QueryVo穿过来的)+总记录数+一页放置…...

    2024/4/15 4:29:46
  6. Spring入门笔记-ioc

    Spring核心ioc控制反转),aop(面向切面编程) 本次笔记主写Ioc ioc主要作用用于解耦(降低各类之间的依赖关系)。 1.为什么要解耦 解耦有助于程序的维护,单独的功能做成独立模块,整个系统由一个个模块通过接口组合而成,如果需要更新或者修改局部功能,只要修改一个接口的…...

    2024/4/24 12:35:25
  7. 从CCPD数据集中生成标注文件(xml)

    CCPD(china city parking dataset) 来源:由中科大的科研人员构建 作用:用于车牌识别的大型国内的数据集 下载链接:https://github.com/detectRecog/CCPD 结构: `` 代码如下: import os import re import cv2 root_path = D:/CHEPAI/CCPD2019/ file_name = os.listdir(roo…...

    2024/4/24 12:35:25
  8. linux文件夹及单文件的复制、移动及删除操作

    linux文件夹复制 将整个dir1文件夹(包含dir1本身)复制到dir2下(如果dir2不存在将创建) cp -r dir1 dir2只将dir1目录下(不包含dir1本身)的文件(包括文件和文件夹)全部复制到dir2中 cp -r dir1/. dir2单文件复制 cp a.txt dir # 将a.txt文件复制到dir文件夹下linux文件移…...

    2024/4/24 12:35:21
  9. 2007 合成孔径雷达成像算法与实现 各figure的matlab实现(第三章 - 图3.6)

    matlab代码如下: % initial matlab workspace % figure 3.6; page 55 clc clear close all% 设置时间宽度T 和 TBP T = 7.2e-6; TBP = 42;% 计算B和K B = TBP/T; K = B/T;% 设置时间序列t fs = 1.2*B; dt = 1/fs; Nt = ceil( T/dt ); Nt = 2^( ceil( log2(Nt) ) ); dt = T/N…...

    2024/4/24 12:35:19
  10. STM32CubeMX学习笔记一 《安装软件》

    前言 学如逆水行舟不进则退,唉!多想学一个技能便可以走遍天下。哈哈!打扰了,我还没睡醒。前段时间花费了一些精力学习的STM32CubeMX 4.27.0版本软件,现如今它却去了趟美容院,给自己更新了,多无奈呀!对我们这些上了年龄的工科男又多了个挑战。之前在项目中用其搭建了一个…...

    2024/4/24 12:35:21
  11. 2018.7.24

    2018.7.24 namespace java com.game.lll.thriftstruct Request {1: string username; 2: string password; }exception RequestException {1: required i32 code;2: optional string reason; }// 服务名 service LoginService {string doAction(1: Request req…...

    2024/4/24 12:35:17
  12. mysql 力扣,1384. 按年度列出销售总额

    按年度列出销售总额 https://leetcode-cn.com/problems/total-sales-amount-by-year/with sc as (select product_id,2018 report_year ,sum(datediff(if(datediff(2018-12-31,period_end)>0,period_end,2018-12-31) ,if (datediff(2018-01-01,period_start)>0,2018-01-0…...

    2024/4/24 12:35:19
  13. 五、数据库的备份和还原

    主要内容: 能够完成数据的备份和恢复1 备份的应用场景 在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。 2 备份与还…...

    2024/4/24 12:35:16
  14. 一、spring基于XML的IOC

    一、spring的概述spring是什么:全栈轻量级开源框架 spring的两大核心:IOC、AOP spring的发展历程和优势:1. 方便解耦,简化开发2. aop编程的支持3. 声明式事务的支持4. 方便程序的测试5. 方便集成各种优秀框架6. 降低 JavaEE API 的使用难度7. Java 源码是经典学习范例sprin…...

    2024/4/24 12:35:14
  15. 免安装mysql的配置

    在mysql的主目录下进入控制台,安装 mysqld.exe -install 服务启动mysql服务:net start mysql如果出现下面的提示启动失败,则在控制台执行sc delete mysql删除mysql服务,然后在主目录的my.ini文件中填入mysql的注主目录路径以及数据存放路径:重新执行mysqld.exe -insta…...

    2024/4/24 12:35:13
  16. 微波射频学习笔记17-------LC谐振的验证和LC滤波器原理

    具体化验证LC谐振规律 一、明确LC谐振和RLC谐振的关系? LC谐振是理想化的RLC谐振,实际电路中或者LC器件本身也会存在电阻,所以RLC谐振的大部分理论对于LC同样适用。 二、单阶LC谐振的电特性? 在深入学习LC滤波器前,抽丝剥茧,先了解串/并联的LC谐振在电路中的作用(仿真软…...

    2024/4/24 12:35:12
  17. JAVA如何读取、写入和copy文件详细说明

    一、首先我们介绍如何读取文件 Java的IO操作中有面向字节(Byte)、面向字符(Character)和包装类三种方式。字节流读取的最小单位是一个字节(1byte=8bit),对数据不进行转换,这些类都是InputStream和OutputStream的子类。字符流一次可以读取一个字符(1char = 2byte = 16bit)…...

    2024/4/24 12:35:14
  18. 统计学习方法 逻辑斯特回归

    算法总结: 1、对比于感知机模型,logistics不但能进行分类,还是计算出样本点属于每个类别的概率; 2、普通的logistic回归只能针对二分类问题。要要实现多分类,需要对对原始logistic回归进行修改。(一般而言是引入softmax函数); 3、logistics和最大熵模型都是对数线性模型…...

    2024/4/16 16:50:48
  19. docker 启动 zookeeper(单机)

    系统环境: CentOS7内核版本: 3.10.0-1127.el7.x86_64Zookeeper版本: 3.4.141. 下载zookeeper镜像docker pull zookeeper:3.4.142. 启动zookeeper容器[root@192 ~]# docker run -d -p 2181:2181 --name some-zookeeper --restart always 0e256393bf7e 36080e8c431c1bd51d736c919…...

    2024/4/15 4:30:01
  20. 深度学习经典算法 | 模拟退火算法详解

    模拟退火算法基本思想现代的模拟退火算法形成于20世纪80年代初,其思想源于固体的退火过程,即将固体加热至足够高的温度,再缓慢冷却。升温时,固体内部粒子随温度升高变为无序状,内能增大,而缓慢冷却时粒子又逐渐趋于有序,从理论上讲,如果冷却过程足够缓慢,那么冷却中任…...

    2024/4/15 4:29:59

最新文章

  1. R可视化:分组频率分布直方图和密度图

    介绍 ggplot2绘制分组频率分布直方图和密度图 加载R包 knitr::opts_chunk$set(message FALSE, warning FALSE) library(tidyverse) library(patchwork) library(ggpubr) library(rstatix)# rm(list ls()) options(stringsAsFactors F) options(future.globals.maxSize …...

    2024/4/25 16:26:10
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. FreeRTOS学习 -- 再识

    工作中一直使用FreeRTOS进行着开发&#xff0c;但是没有进行过系统的总结过。现在将快速使用几天时间将FreeRTOS相关知识点加以总结。 官网&#xff1a; https://www.freertos.org/zh-cn-cmn-s/ 参看资料&#xff1a; 正点原子 STM32F1 FreeRTOS开发手册_V1.2.pdf The FreeRTOS…...

    2024/4/23 6:24:52
  4. 实现窗口拖拽移动

    import Vue from "vue"; /* * 定义公共js里&#xff0c;在入口文件main.js中import&#xff1b; * 给elementUI的dialog上加上 v-dialogDrag 指令就可以实现弹窗的全屏和拉伸了。 */ // v-dialogDrag: 弹窗拖拽水平方向伸缩 Vue.directive(dialogDrag, { bind(e…...

    2024/4/21 18:20:44
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/25 11:51:20
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/23 13:30:22
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/23 13:28:06
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/24 18:16:28
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/23 13:27:44
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/23 13:29:53
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/23 13:27:22
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/25 13:39:44
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/23 22:01:21
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/23 13:29:23
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/25 0:00:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/25 4:19:21
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/24 16:38:05
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/25 13:19:01
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/23 13:27:51
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/23 13:27:19
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57