【云计算】Docker特别版——前端一篇学会
docker学习
文章目录
- 一、下载安装docker
- (一)Windows桌面应用安装
- (二)Linux命令安装
- 二、windows注册登录docker
- 三、Docker的常规操作
- (一)、基本的 Docker 命令
- (二)、镜像操作
- (三)、容器的配置
- (四)、登录远程仓库
- 四、镜像管理
- (一)、搜索官方仓库镜像
- (二)、获取镜像
- (三)、导出镜像
- (四)、导入镜像
- (五)、删除镜像
- (六)、查看镜像详细信息
- (七)、上传自己公共仓库
- 五、管理docker容器
- (一)、容器的启用/停止
- (二)、进入容器的方法
- (三)、容器与主机间的数据传输
- 六、docker 数据卷的管理
- (一)、挂载时创建卷
- (二)、提前创建数据卷
- 七、项目实战(附录)
- 1,安装SSL证书
- 2,配置nginx
- 3,重启nginx服务器
前言:
Docker通过虚拟化安装和运行应用程序的操作系统来简化构建、运 行、管理和分发应用程序的过程。 目的是使应用程序在不同的系统环 境中高效工作。
一、下载安装docker
(一)Windows桌面应用安装
-
下载安装包
官网:https://www.docker.com/

-
安装Docker
点击安装包,自动安装


成功安装,重新启动

-
重新启动如果版本不对会报错内存较低

报错使用命令进行安装
wsl --update

然后就可以正常打开了


(二)Linux命令安装
-
安装要求
更新软件包索引并安装依赖包:
sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive- keyring.gpg添加 Docker APT 仓库:
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -
添加国内yum源
根据每个系统的不同的yum源进行配置
windows:
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com"] }
-
开始安装
sudo apt update sudo apt install docker-ce -
启动docker服务
sudo systemctl start docker -
验证docker是否安装成功
docker --version
二、windows注册登录docker
Linux系统直接去到官网或者使用的时候在进行注册
打开软件选择登录

登记注册账号

登录账号

打开桌面应用

登录中

登录成功

三、Docker的常规操作
(一)、基本的 Docker 命令
-
检查 docker 的版本
docker --version
-
活动容器的列表
docker ps在这里插入图片描述
-
全部容器列表
docker ps -a
-
系统中镜像列表
docker images
-
使用镜像名称创建容器
docker run ARGUMENT IMAGE-NAME这里的参数
-itd(或者-i-t-d) 是指:i ‒ 交互模式
t ‒ 连接到显示终端
d ‒ 后台运行模式
我们可以使用我们所需的任何参数来运行容器
-
停止容器
docker stop CONTAINER-ID/NAME

-
删除容器
docker rm CONTAINER-ID/NAME docker rm -f CONTAINER-ID/NAME // 强制删除
-
删除镜像
docker rmi IMAGE-ID
-
访问容器
docker exec -it container name /bin/bash
(二)、镜像操作
从码头工人中心 (docker.com)上获取镜像
Docker 镜像仓库地址:地址格式一般是<域名/ip>[:端口号] ,默认地址是Dcoker Hub官方地址
仓库名:这里的仓库是两段式名称,即<用户名>/<软件名>,
-
查看本地拥有哪些镜像
docker image -
删除镜像
docker rmi -f 镜像名称 -
查看docker中可以使用的操作
docker --help -
给镜像重新打上一个tag
docker tag nginx nginx:test -
将镜像导出成一个独立的文件
docker save nginx >/tmp/nginx.tar.gz -
如果无法连接到互联网,使用这个命令导出
docker load</tmp/nginx.tar.gz
(三)、容器的配置
-
启动第一个容器
以某个镜像为基础运行一个容器
docker run --name webserver -d -p:8100:80 nginx
-
访问容器地址

(四)、登录远程仓库
-
登录命令
$ docker login -
退出登录
$ docker logout
四、镜像管理
(一)、搜索官方仓库镜像
docker search <imoge_name>
$ docker login$ docker search nginx | head -3
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 18888 [OK]
unit Official build of NGINX Unit: Universal Web … 8 [OK]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKwrZnwG-1692692682546)(./images/image-20230822104621254.png)]
(二)、获取镜像
docker pull <imoge_name>:<tog>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wEA48DFt-1692692682546)(./images/image-20230822104723490.png)]
$ docker pull nginx:1.25.2-perl #下载1.25.2版本
1.25.2-perl: Pulling from library/nginx
52d2b7f179e3: Already exists
fd9f026c6310: Already exists
055fa98b4363: Already exists
96576293dd29: Already exists
a7c4092be904: Already exists
e3b6889c8954: Already exists
da761d9a302b: Already exists
60c2235cc8b6: Pull complete
Digest: sha256:da5e596e27292bedea3c1a59fbef9852e7b0b7e5c21178982c4cc78cb2d700f4
Status: Downloaded newer image for nginx:1.25.2-perl
docker.io/library/nginx:1.25.2-perlWhat's Next?View summary of image vulnerabilities and recommendations → docker scout quickview nginx:1.25.2-perl
$ docker image ls # 查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.25.2-perl a465b9c519a0 5 days ago 236MB
nginx latest eea7b3dcba7e 5 days ago 187MB
(三)、导出镜像
docker image save <imoge_name>:<tog> >/路径/<imoge_name>.tar.gz
$ docker tag nginx nginx:test # 给镜像重新打上一个tag
$ docker image save nginx:1.25.2-perl > C:\Users\daiyu\Desktop\nginx-v2.0.tar.gz #Windows与Linux一样
$ docker load</tmp/nginx.tar.gz #如果没有办法访问外网的情况下可以使用这个命令进行导出
(四)、导入镜像
docker image load i <imoge_name>.tar.gz
$ docker image load i nginx-v2.0.tar.gz$ docker image ls
(五)、删除镜像
$ docker image rm nginx:1.25.2-perl

(六)、查看镜像详细信息
$ docker image inspect nginx
PS C:\Users\daiyu\Desktop> docker image inspect nginx
[{"Id": "sha256:eea7b3dcba7ee47c0d16a60cc85d2b977d166be3960541991f3e6294d795ed24","RepoTags": ["nginx:latest"],"RepoDigests": ["nginx@sha256:104c7c5c54f2685f0f46f3be607ce60da7085da3eaa5ad22d3d9f01594295e9c"],"Parent": "","Comment": "","Created": "2023-08-16T09:50:55.765544033Z","Container": "50b019921f82064e1d8af7e2723929d4c5fafcfd6d8b03595711bd1e455dd3c4","ContainerConfig": {"Hostname": "50b019921f82","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"80/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.25.2","NJS_VERSION=0.8.0","PKG_RELEASE=1~bookworm"],"Cmd": ["/bin/sh","-c","#(nop) ","CMD [\"nginx\" \"-g\" \"daemon off;\"]"],"Image": "sha256:d59ed5fe14c2a306f94488f41ddc8fb060312ee31997f5e077a4c4b29b19114e","Volumes": null,"WorkingDir": "","Entrypoint": ["/docker-entrypoint.sh"],"OnBuild": null,"Labels": {"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"},"StopSignal": "SIGQUIT"},"DockerVersion": "20.10.23","Author": "","Config": {"Hostname": "","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {"80/tcp": {}},"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.25.2","NJS_VERSION=0.8.0","PKG_RELEASE=1~bookworm"],"Cmd": ["nginx","-g","daemon off;"],"Image": "sha256:d59ed5fe14c2a306f94488f41ddc8fb060312ee31997f5e077a4c4b29b19114e","Volumes": null,"WorkingDir": "","Entrypoint": ["/docker-entrypoint.sh"],"OnBuild": null,"Labels": {"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"},"StopSignal": "SIGQUIT"},"Architecture": "amd64","Os": "linux","Size": 186639842,"VirtualSize": 186639842,"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/a5a633a93c5ecaf9c0dd7c64176078a19f62e4902b72671aac868cea4f34d62c/diff:/var/lib/docker/overlay2/926886d52dd0b566a6a96ac3fe3481b9f5e5b92fa7ae354e8b19c3dc8e37ca69/diff:/var/lib/docker/overlay2/14689eb83ef85938fbfc46af9987f07c5ef1f4e058a75ab5b2021c97903a1028/diff:/var/lib/docker/overlay2/57a9f4fdcb8ba210cd81e460f116e30ea33be8abb820c8f3bdb49c965fb46e61/diff:/var/lib/docker/overlay2/5485a2ea4a95a9bdefe35136dc9c41958d5a860dd618171d0679fec6becdcc36/diff:/var/lib/docker/overlay2/145318f6dd8347b6db03a6f60e976f85a16c04067e6301cbe2dfe6ef5113a5f1/diff", "MergedDir": "/var/lib/docker/overlay2/ff41488d38d52c94f16d3ef5bf823f2183235420cc795fb523f64a7ced1c5979/merged","UpperDir": "/var/lib/docker/overlay2/ff41488d38d52c94f16d3ef5bf823f2183235420cc795fb523f64a7ced1c5979/diff","WorkDir": "/var/lib/docker/overlay2/ff41488d38d52c94f16d3ef5bf823f2183235420cc795fb523f64a7ced1c5979/work"},"Name": "overlay2"},"RootFS": {"Type": "layers","Layers": ["sha256:511780f88f80081112aea1bfdca6c800e1983e401b338e20b2c6e97f384e4299","sha256:4713cb24eeff341d0c36343149beba247572a5ff65c2be5b5d9baafb345c7393","sha256:d0a62f56ef413f60049bc87e43e60032b2a2ab8d931e15b86ee0286c85ae91a2","sha256:8a7e12012e6f60450e6d2d777b2a2c2256d34a0ccd84d605f72cc5329a87c8b8","sha256:e161c3f476b5199ab13856c7e190ed12a6562b7be059c7026ae9f594e1abbcaf","sha256:6fb960878295b567d25900b590157b976d080340caeaa8bf8c46d38c01b4537d","sha256:563c64030925e9016a2329d3a2b7d47b0c90931baf5d2d0aa926c4c8d94ab894"]},"Metadata": {"LastTagTime": "0001-01-01T00:00:00Z"}}
]
(七)、上传自己公共仓库
公共仓库地址:nginx Tags (docker.com)
选择登录进行创建仓库

新建仓库

上传镜像
$ docker tag nginx daiyunjie/adlerian_nginx
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest eea7b3dcba7e 5 days ago 187MB
daiyunjie/adlerian_nginx latest eea7b3dcba7e 5 days ago 187MB
$ docker push daiyunjie/adlerian_nginx
Using default tag: latest
The push refers to repository [docker.io/daiyunjie/adlerian_nginx]
563c64030925: Mounted from library/nginx
6fb960878295: Mounted from library/nginx
e161c3f476b5: Mounted from library/nginx
8a7e12012e6f: Mounted from library/nginx
d0a62f56ef41: Mounted from library/nginx
4713cb24eeff: Mounted from library/nginx
511780f88f80: Mounted from library/nginx
latest: digest: sha256:48a84a0728cab8ac558f48796f901f6d31d287101bc8b317683678125e0d2d35 size: 1778
上传成功

五、管理docker容器
(一)、容器的启用/停止
$ docker container ls #查看已经启动的容器
$ docker stop 43737ef7d61e #终止运行中的容器
$ docker start 43737ef7d61e #重新启动之前终止过的容器
$ docker kill 43737ef7d61e #终止运行中的容器
$ docker container rm 43737ef7d61e #强制删除某个容器
(二)、进入容器的方法
$ docker run --name <name> -d -p:8100:80 nginx #创建一个容器<name>自己起名字
$ docker exec -it <name/ID> /bin/bash #进入容器
$ cat /etc/nginx/conf.d/default.conf #nginx配置文件
$ exit #退出
(三)、容器与主机间的数据传输
$ docker cp webserver:/etc/nginx/conf.d/default.conf . #传输到主机
$ vim default.conf #修改
$ docker cp default.conf webserver:/etc/nginx/conf.d/default.conf #传输到容器
$ docker restart webserver # 重启


六、docker 数据卷的管理
(一)、挂载时创建卷
$ mkdir /opt/docker-volumes
PS C:\Users\daiyu\Desktop> mkdir /opt/docker-volumes #创建卷目录: C:\optMode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/8/22 15:10 docker-volumes$ docker rm -f $(docker ps -a -q) #强制删除所用容器$ docker container run -itd --name webserver -p 8080:80 -v /opt/docker-volumes/webserver:/usr/share/nginx/html nginx
025e425bcf03148bce7ceffbec1a1bf41e43f14dab5b70af021edacef049f6cc$ curl http://localhost:8080
$ echo "hello docker volume" > /opt/docker-volumes/webserver/index.html$ curl http://localhost:8080
(二)、提前创建数据卷
$ docker volume create --name webserver \
$ docker volume create --name webserver \
$ docker volume inspect webserver
$ docker container run -itd --name webserver -p 8080:80 -v webserver:/usr/share/nginx/html nginx
$ curl http://localhost:8081
$ echo "hello docker webserver" > /var/lib/docker/volumes/webserver/index.html
$ curl -i http://localhost:8081
七、项目实战(附录)
在Ubuntu上运行一个项目,并且使用nginx反向代理通过域名访问
1,安装SSL证书
首先,需要安装Python及相关组件。可以通过以下命令来完成:
$ sudo apt-get update
$ sudo apt-get install python3-certbot-apache
需要安装Certbot证书颁发机构的证书
$ sudo certbot certonly --standalone --agree-tos --email 邮箱账号 --domains 域名
最后,需要在Ubuntu系统中启用SSL
sudo certbot enable-ssl --apache --cert-file /etc/letsencrypt/live/example.com/fullchain.pem --key-file /etc/letsencrypt/live/example.com/privkey.pem
2,配置nginx
需要在etc/nginx/sites-available/目录下创建一个新的空白文件,然后进行以下配置
server { listen 443 ssl; server_name test.thesky-xh.cn; ssl_certificate 下载的ssl目录地址; ssl_certificate_key ssl密钥的地址; location / { proxy_pass http://localhost:5678; }
}
配置nginx.conf文件:
server {listen 80;server_name test.thesky-xh.cn www.test.thesky-xh.cn;location / {return 301 https://$host$request_uri;}}server {listen 443 ssl;server_name test.thesky-xh.cn www.test.thesky-xh.cn;ssl_certificate /etc/letsencrypt/live/test.thesky-xh.cn/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/test.thesky-xh.cn/privkey.pem;location / {proxy_pass http://127.0.0.1:5700;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
3,重启nginx服务器
$ sudo systemctl stop nginx
$ sudo systemctl start nginx
相关文章:
【云计算】Docker特别版——前端一篇学会
docker学习 文章目录 一、下载安装docker(一)Windows桌面应用安装(二)Linux命令安装 二、windows注册登录docker三、Docker的常规操作(一)、基本的 Docker 命令(二)、镜像操作(三)、容器的配置(四)、登录远程仓库 四、镜像管理(一…...
.net使用RabbitMQ小记
使用RabbitMQ的优点 1.性能全面,rabbitmq性能比较全面,是消息中间件的首选 2.高并发,rabbitmq实现语言是天生就具备高并发高可用的erlang语言 3.任务异步处理,将不需要同步处理的并且耗时长的操作由消息队列通知消息接受方进行异步…...
layUI 中 穿梭框无法获取值的细节问题
初始化的时候一定要指定id,不然就会出现无法调用 获得右侧数据和实例重载的方法...
Kaggle回归问题Mercedes——Benz Greener Manufacturing
目录 前言1 题目介绍2 数据清洗3 数据可视化分析4 模型训练5 源码 前言 这是我在大三选修课的课程设计,内容参考了Kaggle上高赞的代码,有详细批注,整体比较基础,结构相对完整,便于初学者学习。这个是一个回归问题&…...
天润融通「微藤大语言模型平台2.0」以知识驱动企业高速增长
8月23日,天润融通(又称“天润云”,2167.HK),正式发布「微藤大语言模型平台2.0」。 “大模型企业知识企业知识工程”。 “不能有效记录和管理知识的企业是不能持续进步的。在企业的生产流程中,相比于其他场景࿰…...
【BUG】解决安装oracle11g或12C中无法访问临时位置的问题
项目场景: 安装oracle时,到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案: 针对客户端安装,在cmd中执行命令:前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…...
2. 使用IDEA创建Spring Boot Hello项目并管理依赖——Maven入门指南
前言:本文将介绍如何使用IDEA创建一个Spring Boot Hello项目,并通过Maven来管理项目的依赖。我们从项目的创建到代码的编写,再到项目的构建和运行,一步步演示了整个过程。 🚀 作者简介:作为某云服务提供商的…...
Python在电路课程中的应用
1 需求 课程中有大量的计算,电路方程、复数计算,之前都是用的MATLAB online,可现在要过期了,只能更换平台。 2 工具 https://www.online-python.com/ Python3 在线工具 | 菜鸟工具 (runoob.com) 3 Sinusoid 章节 涉及到复数计…...
Spark SQL join的三种实现方式
引言 join是SQL中的常用操作,良好的表结构能够将数据分散到不同的表中,使其符合某种规范(mysql三大范式),可以最大程度的减少数据冗余,更新容错等,而建立表和表之间关系的最佳方式就是join操作。 对于Spark来说有3种…...
wazuh环境配置和漏洞复现
1.wazuh配置 虚拟机 (OVA) - 替代安装 (wazuh.com)在官方网页安装ova文件 打开VMware选择打开虚拟机,把下载好的ova文件放入在设置网络改为NAT模式 账号:wazuh-user 密码:wazuh ip a 查看ip 启动小皮 远程连接 账号admin …...
九五从零开始的运维之路(其三十六)
文章目录 前言一、集群概述1.负载均衡技术类型(一)四层负载均衡器(二)七层负载均衡器 2.负载均衡实现方式(一)硬件负载均衡产品:(二)软件负载均衡产品: 二、L…...
同步和异步有什么区别,使用场景?
同步(Synchronous)和异步(Asynchronous)是用于描述不同的操作和通信模式的术语。它们在处理任务、执行代码以及处理通信时有很大的异同。 同步(Synchronous) 同步操作是指程序的执行顺序按照代码的先后顺序进行,一个操作完成后才能执行下一个操作。在同步操作中,调用一…...
webassembly009 transformers.js 网页端侧推理
之前试用过两个网页端的神经网络框架,一个是 Tensorflow PlayGround,它相当与实现了一个网页端的简单的训练框架,有关节点的数据结构可看这篇。另一个是onnx的网页端(nodejs绿色免安装try onnx on web(chrome)),需要自己转换onnx模…...
Android动态添加和删除控件/布局
一、引言 最近在研究RecyclerView二级列表的使用方法,需要实现的效果如下。 然后查了一些博客,觉得实现方式太过复杂,而且这种方式也不是特别受推荐,所以请教了别人,得到了一种感觉还不错的实现方式。实现的思路为&…...
maven下载不了仓库地址为https的依赖jar,配置参数忽略ssl安全检查
问题原因 私服使用的https地址,然后安全证书过期的或没有,使用maven命令时,可以添加以下参数,忽略安全检查 mvn -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.vali…...
3.Redis 单线程模型
redis 单线程模型 redis 只使用一个线程来处理所有的命令请求,并不是说一个 redis 服务器进程内部真的就只有一个线程,其实也有多个线程,多个线程是再处理网络 IO。 那么在多线程中,针对类似于这样的场景两个线程尝试同时对一个…...
0基础学习VR全景平台篇 第90篇:智慧眼-数据统计
【数据统计】是按不同条件去统计整个智慧眼项目中的热点,共包含四大块,分别是数据统计、分类热点、待审核、回收站,下面我们来逐一进行介绍。 1、数据统计 ① 可以按所属分类、场景分组、所属场景、热点类型以及输入热点名去筛选对应的热点&…...
【Go】Goland项目配置运行教程
Golang项目配置运行教程 1.安装Golang下载安装包安装 2.Goland配置2.1 环境2.2 goland配置2.2.1 没有makefile的情况2.2.2 有makefile的情况 3.跨平台项目4.补充 注意,本项目描述的是git clone下来的Golang项目配置运行教程,并不是从头创建一个Golang项目…...
Docker容器与虚拟化技术:Docker consul 实现服务注册与发现
目录 一、理论 1.Docker consul 二、实验 1.consul部署 2. consul-template部署 三、总结 一、理论 1.Docker consul (1)服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性&…...
【大模型AIGC系列课程 2-2】大语言模型的“第二大脑”
1. 大型语言模型的不足之处 很多人使用OpenAI提供的GPT系列模型时都反馈效果不佳。其中一个主要问题是它无法回答一些简单的问题。 ● 可控性:当我们用中文问AI一些关于事实的问题时,它很容易编造虚假答案。 ● 实时性:而当你询问它最近发生的新闻事件时,它会干脆地告诉你…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
