Docker - DockerFile

Docker - DockerFile

在这里插入图片描述

DockerFile 描述

dockerfile 是用来构建docker镜像的文件!命令参数脚本!

构建步骤:

  1. 编写一个dockerfile 文件
  2. docker build 构建成为一个镜像
  3. docker run 运行脚本
  4. docker push 发布镜像(dockerhub,阿里云镜像仓库!)

通过 Docker Hub 查看Centos,可以跳转到github查看构建代码

在这里插入图片描述

DockerFIle 构建

基础知识

  1. 每个保留关键字(指令)都是必须是大写字母

  2. 执行从上到下顺序执行

  3. #表示注释

  4. 每一个指令都会创建提交一个新的镜像层,并提交!

    在这里插入图片描述

dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件。

docker镜像逐渐成为企业交付的标准,必须掌握!

步骤:开发,部署,运维

Dockerfile:构建文件,定义了一切的步骤,源代码

DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品!

Docke容器:容器就是镜像运行起来提供服务器

DockerFile 指令

FROM			# 基础镜像,一切从这里开始构建
MAINTAINER		# 镜像是谁写的,姓名+邮箱
RUN				# 镜像构建的时候需要运行的命令
ADD				# 步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR			# 镜像的工作目录
VOLUME			# 挂载目录
EXPOSE			# 保留端口配置
CMD				# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT		# 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD			# 当构建一个被继承 Dockerfile 这个时候就会运行 ONBUILD 的指定。触发指令
COPY			# 类似ADD,将我们文件拷贝到镜像中
ENV				# 构建的时候设置环境变量

在这里插入图片描述

DockerFile 测试

# 1 编写Dockerfile文件
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# cat mycentos                                                                                                                                                    
FROM centos:7                                                                                                                                                                                               
MAINTAINER wys<199@163.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "----end----"
CMD /bin/bash

# 2 构建 Docker 镜像
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker build -f mycentos -t mycentos:0.1 .
[+] Building 67.7s (8/8) FINISHED                                                                                                                                                            docker:default
 => [internal] load build definition from mycentos                                                                                                                                                     0.0s
 => => transferring dockerfile: 237B                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                                                                            3.0s
 => [1/4] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                                                                     39.5s
 => => resolve docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                                                                      0.0s
 => => sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4 1.20kB / 1.20kB                                                                                                         0.0s
 => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B                                                                                                             0.0s
 => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB                                                                                                         0.0s
 => => sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB                                                                                                      35.8s
 => => extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc                                                                                                              3.3s
 => [2/4] WORKDIR /usr/local                                                                                                                                                                           0.9s
 => [3/4] RUN yum -y install vim                                                                                                                                                                      19.9s
 => [4/4] RUN yum -y install net-tools                                                                                                                                                                 2.0s
 => exporting to image                                                                                                                                                                                 2.3s 
 => => exporting layers                                                                                                                                                                                2.2s 
 => => writing image sha256:afbe5424adac09891eefa5feabf9584f01638e7475eaca1789535fbe499c5ebd                                                                                                           0.0s 
 => => naming to docker.io/library/mycentos:0.1
 
 
 # 查看镜像的生成过程
 [root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker history afbe5424adac
IMAGE          CREATED         CREATED BY                                      SIZE      COMMENT
afbe5424adac   6 minutes ago   CMD ["/bin/sh" "-c" "/bin/bash"]                0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   CMD ["/bin/sh" "-c" "echo \"----end----\""]     0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   CMD ["/bin/sh" "-c" "echo $MYPATH"]             0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   EXPOSE map[80/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   RUN /bin/sh -c yum -y install net-tools # bu…   198MB     buildkit.dockerfile.v0
<missing>      6 minutes ago   RUN /bin/sh -c yum -y install vim # buildkit    284MB     buildkit.dockerfile.v0
<missing>      6 minutes ago   WORKDIR /usr/local                              0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   ENV MYPATH=/usr/local                           0B        buildkit.dockerfile.v0
<missing>      6 minutes ago   MAINTAINER wys<199@163.com>                     0B        buildkit.dockerfile.v0
<missing>      2 years ago     /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      2 years ago     /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B        
<missing>      2 years ago     /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB

ENTRYPOINT & CMD 区别

【ENTRYPOINT】:追加执行 【CMD】:替换执行

CMD				# 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT		# 指定这个容器启动的时候要运行的命令,可以追加命令

# CMD 测试
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# cat mycentoscmd 
FROM centos
CMD ["ls","-a"]
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker run mycentoscmd
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker run mycentoscmd -l
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "-l": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container:

# CMD 测试
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# cat mycentos-entrypoint
FROM centos
ENTRYPOINT ["ls","-a"]
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker run  mycentos-entrypoint 
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
[root@iZ2zeg7mctvft5renx1qvbZ dockerfiles]# docker run  mycentos-entrypoint -l
total 0
drwxr-xr-x   1 root root   6 Nov 10 08:06 .
drwxr-xr-x   1 root root   6 Nov 10 08:06 ..
-rwxr-xr-x   1 root root   0 Nov 10 08:06 .dockerenv
lrwxrwxrwx   1 root root   7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root 340 Nov 10 08:06 dev
drwxr-xr-x   1 root root  66 Nov 10 08:06 etc
drwxr-xr-x   2 root root   6 Nov  3  2020 home
lrwxrwxrwx   1 root root   7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root   9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root   6 Sep 15  2021 lost+found
drwxr-xr-x   2 root root   6 Nov  3  2020 media
drwxr-xr-x   2 root root   6 Nov  3  2020 mnt
drwxr-xr-x   2 root root   6 Nov  3  2020 opt
dr-xr-xr-x 132 root root   0 Nov 10 08:06 proc
dr-xr-x---   2 root root 162 Sep 15  2021 root
drwxr-xr-x  11 root root 163 Sep 15  2021 run
lrwxrwxrwx   1 root root   8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root   6 Nov  3  2020 srv
dr-xr-xr-x  13 root root   0 Nov 10 08:06 sys
drwxrwxrwt   7 root root 171 Sep 15  2021 tmp
drwxr-xr-x  12 root root 144 Sep 15  2021 usr
drwxr-xr-x  20 root root 262 Sep 15  2021 var

构建 - tomcat

  1. 准备镜像文件 tomcat 压缩包,jdk 压缩包
  2. 编写dockerfile文件
[root@iZ2zeg7mctvft5renx1qvbZ tomcat]wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz

[root@iZ2zeg7mctvft5renx1qvbZ tomcat]wget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
[root@iZ2zeg7mctvft5renx1qvbZ tomcat]wget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz


[root@iZ2zeg7mctvft5renx1qvbZ tomcat]# pwd
/root/dockerfiles/tomcat
[root@iZ2zeg7mctvft5renx1qvbZ tomcat]# ls
apache-tomcat-9.0.82.tar.gz  jdk-8u131-linux-x64.tar.gz  readme.txt


# 编写dockerfile文件,官方命名 `Dockerfile`, build会自动寻找这个文件,就不需要-f 指定了
FROM centos:7
MAINTAINER maomao<1213213@qq.com>

# 复制文件
COPY readme.txt /usr/local/readme.txt

# 将压缩包复制到镜像
ADD jdk-8u131-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.82.tar.gz /usr/local/

# 安装vim
RUN yum -y install vim

# 设置工具目录
ENV MYPATH /usr/local
WORKDIR $MYPATH

# 设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.82
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.82
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

# 暴露端口
EXPOSE 8080

# 执行tomcat
CMD /usr/local/apache-tomcat-9.0.82/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.82/bin/logs/catalina.out


# 执行 build docker镜像
[root@iZ2zeg7mctvft5renx1qvbZ tomcat]# docker build -t tomcat .
[+] Building 26.1s (11/11) FINISHED                                                                                                                                                             docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                                      0.0s
 => => transferring dockerfile: 804B                                                                                                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                                                                         0.0s
 => => transferring context: 2B                                                                                                                                                                           0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                                                                               0.7s
 => CACHED [1/6] FROM docker.io/library/centos:7@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4                                                                                  0.0s
 => [internal] load build context                                                                                                                                                                         0.0s
 => => transferring context: 126B                                                                                                                                                                         0.0s
 => [2/6] COPY readme.txt /usr/local/readme.txt                                                                                                                                                           0.0s
 => [3/6] ADD jdk-8u131-linux-x64.tar.gz /usr/local/                                                                                                                                                      5.3s
 => [4/6] ADD apache-tomcat-9.0.82.tar.gz /usr/local/                                                                                                                                                     0.3s
 => [5/6] RUN yum -y install vim                                                                                                                                                                         15.6s
 => [6/6] WORKDIR /usr/local                                                                                                                                                                              0.1s
 => exporting to image                                                                                                                                                                                    3.9s
 => => exporting layers                                                                                                                                                                                   3.9s
 => => writing image sha256:b1ef32328c3c25f035586a53f3ee10778892a593780232e2c6cf139e9ca8659e                                                                                                              0.0s
 => => naming to docker.io/library/tomcat                                                                                                                                                                 0.0s
[root@iZ2zeg7mctvft5renx1qvbZ tomcat]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
tomcat       latest    b1ef32328c3c   10 seconds ago   881MB


# 启动该镜像的窗口
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker run -d -p 8080:8080 --name tomcat -v /home/build/tomcat/test/:/usr/local/apache-tomcat-9.0.82/webapps/test -v /home/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.82/logs tomcat
06f1d3e98ec482bbba48e57d96c11867bbdbe61474d0674e81556da0ffc9d226

# 编写 test/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID"
         version="2.5">

</web-app>

# 编写 test/index.jsp 进行测试
<% System.out.println("----"); %>

发布镜像 -待注册账号

b站地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=31&vd_source=1909d91dc66b390476f77def15c24fba

  1. 地址:https://hub.docker.com/ 注册自己的账号!
  2. 确定这个账号可以登录
  3. 在服务器上提交自己的镜像
[root@iZ2zeg7mctvft5renx1qvbZ tomcatlogs]# docker login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username
  1. 登录完毕后就可以提交镜像了,就是一步 docker push

阿里云发布

  1. 登录阿里云

  2. 进入【容器镜像服务】并 开启个人实例 【创建命名空间,创建镜像仓库】

  3. 按操作指南进行操作即可

    镜像仓库名好比于当前你发布的容器名

# 登录
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker login --username=*** registry.cn-beijing.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@iZ2zeg7mctvft5renx1qvbZ ~]#

# 拉取镜像
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker pull registry.cn-beijing.aliyuncs.com/am98/tomcat:1.0
1.0: Pulling from am98/tomcat
2d473b07cdd5: Already exists
2045650e548c: Already exists
ca2b114dc7e9: Already exists
fa427a442e19: Already exists
1e0f8f1a4b3d: Already exists
4f4fb700ef54: Already exists
Digest: sha256:c7011cb830a34e26902ae7ac1c5f6c379088d9fde276f7c93942328a85f9f3b7
Status: Downloaded newer image for registry.cn-beijing.aliyuncs.com/am98/tomcat:1.0
registry.cn-beijing.aliyuncs.com/am98/tomcat:1.0
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker images
REPOSITORY                                     TAG       IMAGE ID       CREATED       SIZE
registry.cn-beijing.aliyuncs.com/am98/tomcat   1.0       b1ef32328c3c   2 hours ago   881MB

# 修改镜像名:版本号
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker tag b1ef32328c3c  registry.cn-beijing.aliyuncs.com/am98/tomcat:1.0

# 提交镜像
[root@iZ2zeg7mctvft5renx1qvbZ ~]# docker push registry.cn-beijing.aliyuncs.com/am98/tomcat:1.0
The push refers to repository [registry.cn-beijing.aliyuncs.com/am98/tomcat]
5f70bf18a086: Pushed
bb6cd3e44e82: Pushed
801a43a0316f: Pushed
b3f9f3df333b: Pushed
1d2219e9e671: Pushed
174f56854903: Pushed
1.0: digest: sha256:c7011cb830a34e26902ae7ac1c5f6c379088d9fde276f7c93942328a85f9f3b7 size: 1579

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/141966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无监督学习的集成方法:相似性矩阵的聚类

在机器学习中&#xff0c;术语Ensemble指的是并行组合多个模型&#xff0c;这个想法是利用群体的智慧&#xff0c;在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用&#xff0c;特别是在分类问题上&#xff0c;像RandomForest这样…

【KVM-5】KVM架构

前言 大家好&#xff0c;我是秋意零。今天分析的内容是KVM架构。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f525; 账号&#xff1a;全平台同名&#xff0c; 秋意零 账号创作者、 云社区 创建者&#x1f9d1; 个人介绍&#xff1a;在校期间参与…

正点原子嵌入式linux驱动开发——Linux IIO驱动

工业场合里面也有大量的模拟量和数字量之间的转换&#xff0c;也就是常说的ADC和DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发&#xff0c;传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等&#xff0c;这些传感器本…

计算机视觉(CV)技术的优势和挑战

计算机视觉技术在很多领域具有很大的优势,例如: 自动化:计算机视觉技术可以帮助实现自动化生产和检测,省去了人力成本和时间成本。 准确性:计算机视觉技术可以提高生产和检测的准确性,降低了人工操作产生的误差。 速度:计算机视觉技术可以实现高速速度的生产和检测,提高…

flv.js在vue中的使用

Flv.js 是 HTML5 Flash 视频&#xff08;FLV&#xff09;播放器&#xff0c;纯原生 JavaScript 开发&#xff0c;没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF&#xff08;MP4 碎片&#xff09;片段&#xff0c;然后通过 Media Sour…

【vue实战项目】通用管理系统:封装token操作和网络请求

目录 1.概述 2.封装对token的操作 3.封装axios 1.概述 前文我们已经完成了登录页&#xff1a; 【vue实战项目】通用管理系统&#xff1a;登录页-CSDN博客 接下来我们要封装一下对token的操作和网络请求操作。之所以要封装这部分内容是因为token我们登陆后的所有请求都要携…

Python爬虫从基础到入门:认识爬虫

Python爬虫从基础到入门:认识爬虫 1. 认识爬虫2. 开始简单的爬虫操作(使用requests)3. 辨别“数据”是静态加载还是动态生成的1. 认识爬虫 爬虫用自己的话说其实就是利用一定的编程语言,到网络上去抓取一些数据为自己所用。那为什么要用爬虫呢?自己直接到网页上去copy数据它…

线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换

本系列文章将从下面不同角度解析线性代数的本质&#xff0c;本文是本系列第二篇 向量究竟是什么&#xff1f; 向量的线性组合&#xff0c;基与线性相关 矩阵与线性相关 矩阵乘法与复合线性变换 三维空间中的线性变换 行列式 逆矩阵&#xff0c;列空间&#xff0c;秩与零空间 克…

Arthas(阿尔萨斯)--(二)

目录 一、Arthas学习 1、JVM相关命令一 1、dashboard 2、thread 3、jvm 4、sysprop 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas代码开源地址 1、JVM相关命令一 1、dashboard dashboard:显示当前系统的实时数据面板&#xff0c;按q或ctrlc退出 ID: Java 级别的线…

vue3 ref 与shallowRef reactive与shallowReactive

ref 给数据添加响应式&#xff0c;基本类型采用object.defineProperty进行数据劫持&#xff0c;对象类型是借助reactive 实现响应式&#xff0c;采用proxy 实现数据劫持&#xff0c;利用reflect进行源数据的操作 let country ref({count:20,names:[河南,山东,陕西],objs:{key…

postman调用接口报{“detail“:“Method \“DELETE\“ not allowed.“}错误, 解决记录

项目是python代码开发, urls.py 路由中访问路径代码如下: urlpatterns [path(reportmanagement/<int:pk>/, views.ReportManagementDetail.as_view(), namereport-management-detail),] 对应view视图中代码如下: class ReportManagementDetail(GenericAPIView):"…

华为笔记本电脑原装win10/win11系统恢复安装教程方法

华为电脑matebook 14原装Win11系统带F10智能还原 安装恢复教程&#xff1a; 1.安装方法有两种&#xff0c;一种是用PE安装&#xff0c;一种是华为工厂包安装&#xff08;安装完成自带F10智能还原&#xff09; 若没有原装系统文件&#xff0c;请在这里获取&#xff1a;https:…

适配器模式 rust和java的实现

文章目录 适配器模式介绍何时使用应用实例优点缺点使用场景 实现java实现rust 实现 rust代码仓库 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能…

Javaweb之javascript事件的详细解析

1.6 JavaScript事件 1.6.1 事件介绍 如下图所示的百度注册页面&#xff0c;当我们用户输入完内容&#xff0c;百度可以自动的提示我们用户名已经存在还是可以使用。那么百度是怎么知道我们用户名输入完了呢&#xff1f;这就需要用到JavaScript中的事件了。 什么是事件呢&…

【电路笔记】-戴维南定理(Thevenin‘s Theorem)

戴维南定理&#xff08;Thevenin’s Theorem&#xff09; 文章目录 戴维南定理&#xff08;Thevenins Theorem&#xff09;1、概述与定义2、戴维南模型确定3、一些线性电路的戴维南模型3.1 单电压源3.2 单电流源3.3 多电流/电压源 4、结论 在本文中&#xff0c;我们将介绍一种强…

2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)

2023.11.12使用flask对图片进行黑白处理&#xff08;base64编码方式传输&#xff09; 由前端输入图片并预览&#xff0c;在后端处理图片后返回前端显示&#xff0c;可以作为图片处理的模板。 关键点在于对图片进行base64编码的转化。 使用Base64编码可以更方便地将图片数据嵌入…

file2Udp增量日志转出Udp简介

https://gitee.com/tianjingle/file2udp 很多时候服务产生的日志需要进行汇总&#xff0c;这种统一日志处理的方式有elb&#xff0c;而且很多日志组件也支持日志转出的能力。但是从广义上来说是定制化的&#xff0c;我们需要一个小工具实现tail -f的能力&#xff0c;将增量日志…

[100天算法】-球会落何处(day 76)

题目描述 用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。箱子中的每个单元格都有一个对角线挡板&#xff0c;跨过单元格的两个角&#xff0c;可以将球导向左侧或者右侧。将球导向右侧的挡板跨过左上角和右下角&#xff0c;在网…

【java:牛客每日三十题总结-7】

java:牛客每日三十题总结 总结如下 总结如下 执行流程如下&#xff1a;创建HttpServlet时需要覆盖doGet()和doPost请求 2. request相关知识 request.getParameter()方法传递的数据&#xff0c;会从Web客户端传到Web服务器端&#xff0c;代表HTTP请求数据&#xff1b;request.…

C#中.NET 6.0控制台应用通过EF访问已建数据库

目录 一、新建.NET 6.0控制台应用并建立数据库连接 二、下载并安装EF程序包 三、自动生成EF模型和上下文 1.Blog类模型 2.Post类模型 3.数据库上下文 四、设计自己的应用 VS2022的.NET6.0、.NET7.0框架下默认支持EF7&#xff08;版本号7.0.13&#xff09;&#xff0c;除…