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

Docker学习——③

文章目录

  • 1、Docker Registry(镜像仓库)
    • 1.1 什么是 Docker Registry?
    • 1.2 镜像仓库分类
    • 1.3 镜像仓库工作机制
    • 1.4 常用的镜像仓库
  • 2、镜像仓库命令
  • 3、镜像命令[部分]
  • 4、容器命令[部分]
    • 4.1 docker run
    • 4.2 docker ps
  • 5、CentOS 搭建一个 nginx 服务

1、Docker Registry(镜像仓库)

1.1 什么是 Docker Registry?

镜像仓库 (Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。

镜像仓库管理多个 Repository, Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签 (Tag)来区分。

整体视图如下:

在这里插入图片描述

镜像仓库(Registry):要从哪一个镜像仓库拉取镜像,通常通过 DNS 或 IP 地址来确定一个镜像仓库如 hub.docker.com;一个 Registry 中可以存在多个Repository·Repository 可分为“顶层仓库”和“用户仓库”;·用户仓库名称格式为“用户名/仓库名”·每个仓库可以包含多个 Tag(标签),每个标签对应一个镜像

Repository:由某特定的 docker 镜像的所有迭代版本组成的镜像仓库

镜像名称(name)+标签(tag):如 nginx:latest

认证能力:提供用户注册,登录、登出能力

索引:提供镜像的索引信息,方便检索

一个容器镜像包含了两个部分,一个是元数据,其实就是由 dockerfile 构建出来的描述文件,这个描述文件会说这个容器镜像有多少层,每一层里面有什么内容,它的checksum 这些信息都会记录下来,还有最终的可执行文件在哪就是在存储数据里面,就是在一个一个的 blob 里面,真正占有空间的就是这些 blob

1.2 镜像仓库分类

按是否对外开放划分,也是研发人员常说的
公有仓库:像阿里云、dockerhub 等放到公有网络上,不用登录就可以下载镜像,
供大家访问使用

私有仓库:不对外开放,往往位于私有网络,只有公司内部人员可以使用。

按供应商和面向群体划分
sponsor(赞助) registry:第三方的 registry,供客户和 docker 社区版使用
mirror(镜像) registry:第三方的 registry,只让客户使用,例如阿里云必须注册才能使用
vendor(供应商) registry:由发布 docker 镜像的供应商提供的 registry,例如像Google 和 Redhat 提供了镜像仓库服务
private registry:通过没有防火墙和额外的安全层的私有实体提供的 registry,仅供内部使用

1.3 镜像仓库工作机制

镜像仓库使用流程

  1. 通过 docker login 登录仓库(公共仓库不需要登录)
  2. Docker pull 拉取需要的镜像
  3. 通过 dockerfile 或者 commit 等方式制作完镜像通过 docker push 上传到仓库

实际研发中镜像仓库如何使用

Docker Registry 中的镜像通常由开发人员制作,而后推送至“公共”或“私有”Registry 上保存,供其他人员使用,例如“部署”到生产环境
在这里插入图片描述

镜像仓库的拉取机制

启动容器时,docker daemon 会试图从本地获取相关的镜像;本地镜像不存在时,其将从 Registry 中下载该镜像并保存到本地

1.4 常用的镜像仓库

DockerHub
Docker Hub 是 Docker 提供的托管存储库服务,用于查找容器映像并与您的团队共享。具有以下功能:
(1)个人可以注册私有仓库,能够发布自己的镜像
(2)提供镜像检索能力
(3)提供海量官方和认证组织的镜像
(4)从 GitHub 和 Bitbucket 自动构建容器镜像并将它们推送到 Docker Hub
(5)支持 webhook(webhook 是一种基于 HTTP 的回调函数,发生指定的事件时,服
务器会自动将相关的有效负载发送到客户端的 webhook URL。 )

Docker Hub 功能浏览

镜像搜索

在这里插入图片描述

镜像tag查找

在这里插入图片描述

对应版本拉取命令

在这里插入图片描述

镜像的大小,id,cpu架构查看

在这里插入图片描述
网址:https://hub.docker.com/

国内镜像源
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内镜像加速器服务,例如:

阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像工具 -> 镜像加速器-> 复制加速器地址)
网易云加速器地址 https://hub-mirror.c.163.com
百度云加速器地址"https://mirror.baidubce.com"
可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
# 注意如果最外层以及你给有了配置,不要直接覆盖,而是将下面的内容添加,然
后确保 json 的格式正确"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}

添加完成后需要重新加载配置,重启 Docker:

# 加载配置
sudo systemctl daemon-reload 
# 重启 docker
sudo systemctl restart docker 
#查看 docker 状态
sudo systemctl status docker

私有仓库

私有镜像仓库则是指部署在公司或组织内部,用于自身应用 Docker 镜像存储、分发的镜像仓库。在构建公司内部使用的自动化发布系统的过程中,从安全的角度出发,应用的打包镜像一般情况下只会被存储在私有镜像仓库中,CI/CD 流程的衔接点也是通过向私有镜像仓库上传镜像和拉取镜像的操作来完成的。

常见的私有仓库工具:
Harbor:Harbor 是 VMware 公司最近开源的企业级 Docker Registry 项目, 其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的registry 为基础,提供了管理 UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 Docker Compose 来对它进行部署。

Nexus:Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,目前常被用来作为 Maven 私服、Docker 私服。

Docker registry:由 docker 官方提供的私服,类似于 docker hub。用于保存公司内部上传的 Docker 镜像。

2、镜像仓库命令

命令清单

命令别名功能
docker login登录仓库
docker pulldocker image pull拉取镜像
docker pushdocker image push推送镜像
docker search查找镜像
docker logout登出仓库

如果想要学习某个命令,例如学习docker login,可以添加上 --help 参数,就会有对应的命令信息

在这里插入图片描述

或者直接去官网学习:https://docs.docker.com/engine/reference/commandline/cli/

在这里插入图片描述

docker login
登陆到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker login [OPTIONS] [SERVER]

关键参数:
-u :登陆的用户名
-p :登陆的密码

可以自行去docker官网去注册,然后再进行登录

docker pull
从镜像仓库中拉取或者更新指定镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

别名

docker image pull

关键参数
-a :拉取所有 tagged 镜像
–disable-content-trust :忽略镜像的校验,默认开启

通过名字+tag拉取
在这里插入图片描述

通过id下载
在这里插入图片描述

在这里插入图片描述
因为前面下过,所以就没有重复下载了

docker push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker push [OPTIONS] NAME[:TAG]

别名

docker image push

关键参数
-a :推送所有 tagged 镜像
–disable-content-trust :忽略镜像的校验,默认开启

需要自行注册登录,然后创建一个仓库

在这里插入图片描述

必须按照规定上传

在这里插入图片描述

需要给原来的镜像按照规定重新取名,再提交

在这里插入图片描述
再验证一下,发现已经成功 push 到 docker hub 上了

在这里插入图片描述

一次推送所有镜像
在这里插入图片描述

docker search
从 Docker Hub 查找镜像

docker search [OPTIONS] TERM

关键参数
–no-trunc :显示完整的镜像描述
-f <过滤条件>:列出收藏数不小于指定值的镜像

查找nginx的镜像
在这里插入图片描述
查找nginx镜像stars大于10的镜像

在这里插入图片描述

但是往往找镜像,都是去站点上找,因为查看方面

docker logout
登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker logout [SERVER]

在这里插入图片描述

3、镜像命令[部分]

docker images
列出本地镜像

docker images [OPTIONS] [REPOSITORY[:TAG]]

别名

docker image ls, docker image list

关键参数
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
–digests :显示镜像的摘要信息
-f :显示满足条件的镜像
–format :指定返回值的模板文件
–no-trunc :显示完整的镜像信息
-q :只显示镜像 ID

列出本地全部镜像,以及列出本地镜像名为nginx:1.23.4的镜像
在这里插入图片描述

也可以跟shell配合使用

在这里插入图片描述

docker image inspect
查看镜像详细信息

docker image inspect [OPTIONS] IMAGE [IMAGE...]

在这里插入图片描述

还能通过image id查看
在这里插入图片描述

docker tag
标记本地镜像,将其归入某一仓库,相当于mv命令,进行重命名

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

在这里插入图片描述

4、容器命令[部分]

4.1 docker run

docker run
创建一个新的容器并运行一个命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

别名

docker container run

关键参数
-d: 后台运行容器,并返回容器 ID
-i: 以交互模式运行容器,通常与 -t 同时使用
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
–name=“nginx-lb”: 为容器指定一个名称
-h “mars”: 指定容器的 hostname
-e username=“ritchie”: 设置环境变量
- -cpuset-cpus=“0-2” or --cpuset-cpus=“0,1,2”: 绑定容器到指定 CPU 运行
-m :设置容器使用内存最大值
–network=“bridge”: 指定容器的网络连接类型
- -link <name or id>:alias: 添加链接到另一个容器,name和id是源容器的name和id,alias是源容器在link下的别名
- -volume , -v: 绑定一个卷
- -rm :shell 退出的时候自动删除容器

docker run 无参
拉取CentOS 7的镜像,并运行
在这里插入图片描述

此时发现run之后,里面退出了,这是因为centos 7默认的命令是/bin/bash,需要长时间交互,因为这里没有交互,所以直接退出了

通过以下命令查看是否创建容器

#查看正在运行的容器
docker ps#查看所有的容器
docker ps -a

在这里插入图片描述

通过以下命令从新启动容器

docker run -it centos:7 bash

在这里插入图片描述

参数 -d

因为docker run 无参是前台运行,它会把所有的日志都打印到前台,例如启动nginx服务

在这里插入图片描述

因此可以使用-d选项,使其成为后台运行

docker run -d nginx:1.23.4

在这里插入图片描述

在这里插入图片描述

参数 -p

docker run -d -p 80:80 nginx:1.23.4

在这里插入图片描述

在指定端口时,需要注意宿主机的端口没被占用,如果没有

参数 -P
使用-P,随机指定宿主机的端口
在这里插入图片描述

通过curl命令向本机的32768端口发送请求

在这里插入图片描述

成功访问到了nginx

参数 --name
如果不使用–name,那么启动容器时,docker将会随机给容器取名,根本记不住

在这里插入图片描述
在这里插入图片描述

参数 -h
指定容器名为mycentos7
在这里插入图片描述

参数 -e
指定环境变量
在这里插入图片描述

参数 --cpuset-cpus
给nginx指定CUP为0核和1核
在这里插入图片描述

这里出错的原因不是语法错误,而是我的云服务只有1核

在这里插入图片描述

从新指定为0核

在这里插入图片描述

参数 -m
给nginx指定500m内存
在这里插入图片描述在这里插入图片描述

参数 --link
在一个终端启动一个容器,名为mycentos1,再在另一个终端启动另外一个容器,名为mycentos2,并链接大mycentos1上,从而实现容器互联

终端1启动名为mycentos1的容器
在这里插入图片描述
另一个终端启动名为mycentos2的容器,并链接到mycentos1上,进行ping操作,查看是否能ping通

在这里插入图片描述

这里本质上就是把mycentos1的IP地址进行了DNS的解析,在/etc/hosts文件中就能看到

在这里插入图片描述

但是mycentos1不能ping通mycentos2,因为没对mycentos2的IP地址进行DNS解析

在这里插入图片描述

参数 --rm
不使用- -rm参数,容器停止后,还会保留
在这里插入图片描述

使用- -rm参数,容器停止后,会自动将容器删除
在这里插入图片描述

4.2 docker ps

docker ps
列出容器

docker ps [OPTIONS]

别名

docker container ls, docker container list, docker container ps

关键参数
-a :显示所有的容器,包括未运行的
-f :根据条件过滤显示的内容
- -format :指定返回值的模板文件。如 json 或者 table
-l :显示 ;的容器
-n :列出最近创建的 n 个容器
- -no-trunc :不截断输出
-q :静默模式,只显示容器编号
-s :显示总的文件大小

docker ps 无参
在这里插入图片描述

参数 -a
显示所有的容器,包括未运行的
在这里插入图片描述

参数 -f
根据名字显示容器
在这里插入图片描述

参数 -l
显示最近的一个容器
在这里插入图片描述

参数 -n
显示最近的n个容器
在这里插入图片描述

参数 -q
显示所有正在运行容器的id
在这里插入图片描述

参数 -s
将容器的大小也打印出来
在这里插入图片描述

5、CentOS 搭建一个 nginx 服务

首先查看nginx服务是否在运行,或者查看是否有nginx服务

在这里插入图片描述

可以通过杀死master进程,从而杀死整个nginx服务

在这里插入图片描述

删除nginx

在这里插入图片描述

安装nginx

# centos 配置 nginx 源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

可以在这个目录下查看是否配置成功

在这里插入图片描述

构建缓存,这样下载起来速度就会变快

在这里插入图片描述

#安装nginx
yum install -y nginx

安装完成之后,查看 nginx 是否启动,如果没有启动,则可以手动启动

#查看版本
nginx -v
#手动启动
命令1:nginx
命令2:systemctl start nginx

访问nginx的首页

在这里插入图片描述

查看nginx默认的配置文件

在这里插入图片描述

在这里插入图片描述
nginx默认监听80端口,访问根的话,就会访问到 /usr/share/nginx/html/index.html

将 /usr/share/nginx/html/index.html 的内容修改一下,然后再次访问nginx的首页

在这里插入图片描述

在这里插入图片描述

安装nginx,首先得检查环境,查看机器上是否有nginx,有的话,就卸载掉,然后进行nginx的下载安装,并完成启动,如果觉得首页不好看,再调整首页的配置信息

通过docker搭建nginx服务

首先拉去合适的镜像

docker pull nginx:1.24.0

查看对应的详细信息

docker image inspect nginx:1.24.0

可以看到对外暴露的端口是80端口
在这里插入图片描述

进入容器,启动nginx,然后修改对应的页面信息

docker run -it -p 80:80 nginx:1.24.0 bash
nginx
cd /usr/share/nginx/html/
echo "fl" > index.html

在这里插入图片描述

总体来看,使用docker搭建nginx还是挺方便的

相关文章:

Docker学习——③

文章目录 1、Docker Registry&#xff08;镜像仓库&#xff09;1.1 什么是 Docker Registry&#xff1f;1.2 镜像仓库分类1.3 镜像仓库工作机制1.4 常用的镜像仓库 2、镜像仓库命令3、镜像命令[部分]4、容器命令[部分]4.1 docker run4.2 docker ps 5、CentOS 搭建一个 nginx 服…...

EMC Unity存储系统如何查看SSD的使用寿命

为什么要写这个博客&#xff1f; 客户对老的EMC unity的存储系统要扩容&#xff0c;如何确定SSD磁盘是全新的还是拆机二手的&#xff1f;很多时候客户还有一个奇葩的要求&#xff0c;就是要和5年前的磁盘PN一致&#xff0c;甚至要求固件版本一致&#xff0c;最关键的还要求是全…...

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用&#xff1a; 1.在pc本地 1&#xff09;pip flask后创建一个简单的脚本flask_demo.py from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, World!winR进入命令行&#xff0c;…...

阿里云域名实战

一、准备阿里云服务器&#xff0c;实现网站功能 &#xff08;1&#xff09;百度搜索阿里云 &#xff08;2&#xff09;登录阿里云 可以使用支付宝&#xff0c;淘宝账号登录 &#xff08;3&#xff09;点击控制台 (4)创建实例&#xff0c;购买云服务器 &#xff08;5&#x…...

git关联远程仓库自己分支自用

初始化仓库 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 (tong) $ git init Reinitialized existing Git repository in D:/code/api_test_202310232022/.git/关联远程仓库并创建本地分支 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 …...

eBPF BCC开源工具简介

目录 官方链接 编译安装 ubuntu版本 安装 examples tools hello_world.py demo 运行报错 网上目前的解决办法 错误分析过程 python版本检测 libbcc库检查 python3 bcc库检查 正常输出 监控进程切换 运行输出 监控CPU直方图 缓存命中率监控&#xff1a;caches…...

Linux上后台运行进程(nohub、screen和tmux )

文章目录 Linux上后台运行进程&#xff08;nohub、screen和tmux &#xff09;nohupscreen虚拟终端安装screen使用 tmux终端复用器[个人推荐]安装tmux使用 Linux上后台运行进程&#xff08;nohub、screen和tmux &#xff09; 命令行的典型使用方式是&#xff0c;打开一个终端窗…...

javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

目录 mavenspringboot实验目的实验内容环境的搭建 在开发中&#xff0c;maven和spring都是非常常用、非常重要的管理工具和框架&#xff0c;今天就在这里使用idea进行环境的搭建和创建第一个spring程序 maven 1.1maven是一个跨平台的项目管理工具&#xff08;主要管理jar包&am…...

重新思考边缘负载均衡

本文介绍了Netflix在基于轮询的负载均衡的基础上&#xff0c;集成了包括服务器使用率在内的多因素指标&#xff0c;并对冷启动服务器进行了特殊处理&#xff0c;从而优化了负载均衡逻辑&#xff0c;提升了整体业务性能。原文: Rethinking Netflix’s Edge Load Balancing[1] 我…...

构建一个CAN报文周期任务类

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、can周期任务类构建总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 最近想着有时间实现总线报文收发的动态的配置&#xff0c;…...

深入理解计算机系统CS213 - Lecture 02

Bits, Bytes, and Integer 1.位运算与条件运算 &&#xff0c;|&#xff0c;^&#xff0c;~ 是做位运算。诸位01运算。 &&&#xff0c;||&#xff0c;&#xff01;是判断条件真假&#xff0c;而后返回0或1。 2. 位移 x << y&#xff1a;左移y位&#xff…...

【KVM】KVM介绍及功能概述

前言 大家好&#xff0c;我是秋意零。 今天介绍的内容是KVM的概述&#xff0c;以及它所支持的基本功能。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f525; 账号&#xff1a;全平台同名&#xff0c; 秋意零 账号创作者、 云社区 创建者&#x1f…...

centos7安装MySQL

引言 在安装与卸载的时候&#xff0c;用户全部要切换为root 在使用MySQL的时候&#xff0c;尽量使用root权限&#xff0c;便于使用&#xff08;root权限不会开的可以去百度找一下自己服务器类型的开启方式&#xff09;在本文章我将使用xshell7进行操作&#xff0c;你也可以使用…...

leetcode做题笔记215. 数组中的第K个最大元素

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k 2…...

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时&#xff0c;经常会有如下 2 种需求&#xff1a; 对文件内容做了修改之后&#xff0c;却发现整个修改过程是错误或者没有必要的&#xff0c;想将文件恢复到修改之前的样子。 将文件内容恢复之后&#xff0c;经过仔细考虑&#xff0c;又感觉还是刚才修改…...

【BUG】记一次Maven install 报错 Could not find artifact ...:pom:0.0.1-SNAPSHOT

问题描述 创建一个maven多模块项目&#xff0c;执行install报错Could not find artifact …:pom:0.0.1-SNAPSHOT&#xff0c;然后点击clean也是报错。 原因分析&#xff1a; 从错误日志发现提示无法从远程maven仓库下载父模块&#xff0c;一看应该是哪里配置了强制从远程仓库…...

逆向学习记录(4)adb

adb用于PC和手机端通讯。 常用命令如下&#xff1a; 如果不是模拟器&#xff08;模拟器一般都有自己的adb&#xff09;&#xff0c;adb会出现在Andirod的SDK中&#xff0c;路径为&#xff1a;Android/SDK/platform-tools。 最好加入环境变量中。...

Windows Server 2016使用MBR2GPT.EXE教程!

什么是MBR2GPT.exe&#xff1f; MBR2GPT.exe是微软提供的专业工具&#xff0c;可在命令提示符下运行。使用该工具可以将引导磁盘从MBR转换为GPT分区样式&#xff0c;而无需修改或删除所选磁盘上的任何内容。 在Windows Server 2019和Windows 10&#xff08;1703…...

SpringBoot项目多环境开发

1.yml文件&#xff08;旧&#xff09; 说明&#xff1a;旧的写法。 #应用环境 spring:profiles:active: dev --- #设置环境#生产环境 spring:profiles: pro server:port: 81--- #开发环境 spirng:profiles: dev server:port: 81--- #测试环境 spring:profiles: test server:p…...

godot4实现一个单例类,作为公共数据共享类

在 Godot 4 中&#xff0c;你可以通过创建一个自动加载的脚本来实现单例类&#xff0c;用于作为公共的数据总线。你需要做的是&#xff1a; 1. 创建一个新的 GDScript 文件&#xff0c;例如 GlobalData.gd&#xff0c;并在其中定义你想要共享的变量和函数。 2. 然后&#xff0…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...