8.30 容器部署project-exam-system项目

news2024/11/15 15:37:35

一、项目-使用docker部署project-exam-system
1、背景
在一台主机之内,实现容器的编排,发布考试系统

2、环境准备
 # 部署docker环境
 [root@docker ~]# sh docker.sh
 [root@docker ~]# vim /etc/docker/daemon.json
 {
         "registry-mirrors" : [
                 "https://do.nark.eu.org",
                 "https://dc.j8.work",
                 "https://docker.m.daocloud.io",
                 "https://dockerproxy.com",
                 "https://docker.mirrors.ustc.edu.cn",
                 "https://docker.nju.edu.cn"
         ],
         "host" : [
                 "tcp://0.0.0.0:2375",
                 "unix:///var/run/docker.sock"
         ],
         "insecure-registries" : [
                 "http://10.0.0.7:5000"
         ]
 }
 [root@docker ~]# vim /usr/lib/systemd/system/docker.service 
 ExecStart=/usr/bin/dockerd
 [root@docker ~]# systemctl daemon-reload
 [root@docker ~]# systemctl start docker
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
3、前端配置
前端使用nginx服务

1)测试:容器搭建nginx服务
 # 拉取nginx镜像
 [root@docker ~]# docker pull nginx
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 nginx        latest    5ef79149e0ec   2 weeks ago   188MB
 # 创建一个容器测试一下nginx服务
 [root@docker ~]# docker run -itd -p80:80 nginx:latest
 fc8a6e06f77d877c8341c8a5aed3ec50fa448918bc672b2e330db8060b947a57
 [root@docker ~]# docker ps -a
 CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS         PORTS                               NAMES
 fc8a6e06f77d   nginx:latest   "/docker-entrypoint.…"   10 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   busy_mccarthy
 [root@docker ~]# docker exec -it fc8a ls /usr/share/nginx/html
 50x.html  index.html
 # 在容器启动后,nginx服务就自动发布了
 [root@docker ~]# curl localhost
 <!DOCTYPE html>
 <html>
 <head>
 <title>Welcome to nginx!</title>
 <style>
 html { color-scheme: light dark; }
 body { width: 35em; margin: 0 auto;
 font-family: Tahoma, Verdana, Arial, sans-serif; }
 </style>
 </head>
 <body>
 <h1>Welcome to nginx!</h1>
 <p>If you see this page, the nginx web server is successfully installed and
 working. Further configuration is required.</p>
 <p>For online documentation and support please refer to
 <a href="http://nginx.org/">nginx.org</a>.<br/>
 Commercial support is available at
 <a href="http://nginx.com/">nginx.com</a>.</p>
 <p><em>Thank you for using nginx.</em></p>
 </body>
 </html>

2)上传前端项目映射到容器中
 # 上传前端项目dist
 # 创建一个目录,不单独放置前端的资料,将后端的所有资料也都放在这里
 [root@docker ~]# mkdir project_exam_system
 [root@docker ~]# cd project_exam_system/
 [root@docker project_exam_system]# mkdir web
 [root@docker ~]# unzip project_exam_system.zip 
 [root@docker ~]# mv dist project_exam_system/web/
 [root@docker ~]# cd project_exam_system
 [root@docker project_exam_system]# ls
 web
 [root@docker project_exam_system]# cd web/
 [root@docker web]# ls
 dist
 # 将测试容器删除
 [root@docker web]# docker rm -f fc8
 fc8
 # 再创建容器,映射端口,挂载目录
 [root@docker project_exam_system]# docker run -itd -p80:80 -v /root/project_exam_system/web/dist/:/usr/share/nginx/html/ nginx:latest
 98646a277c8bd126a3fd39453707b5ab66a8869be963e3680653610c991e46af
 [root@docker project_exam_system]# docker ps
 CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                               NAMES
 98646a277c8b   nginx:latest   "/docker-entrypoint.…"   9 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   unruffled_gauss
3)结果展示
出现问题,在实现登录时,出现后端异常,原因是后端还没有配置。

从上面图片可以看出来,请求的域名为bu.yuanyu.zhangmin,现在我们需要将域名劫持下来,将该域名指向我们的linux主机,在linux主机中使用容器搭建后端服务器,所以要在本机的hosts文件中写入域名的对应关系,使其指向linux主机

配置完成后,本机能够ping通bu.yuanyu.zhangmin域名并由10.0.0.7主机回应即配置成功

4、后端配置
后端的业务springboot

优点:不用单独部署tomcat,已经在springboot中内置tomcat

1)测试:在centos容器中配置java环境,修改数据库地址并运行war包
 # 拉取基础centos镜像
 [root@docker ~]# docker pull centos
 # 创建centos容器
 [root@docker ~]# docker run -it centos:latest /bin/bash
 [root@d34e6c6d34d7 /]# ls
 bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
 dev  home  lib64  media       opt  root  sbin  sys  usr
 [root@d34e6c6d34d7 /]# [root@docker ~]# 
 # 试图使用scp将服务器上的war包上传给容器中去,发现上传不了
 [root@docker ~]# scp Project_ExamSystem-V1.0.0.war root@172.17.0.3:~
 ssh: connect to host 172.17.0.3 port 22: Connection refused
 lost connection
 # 查看docker帮助文档
 [root@docker ~]# docker --help
 cp          Copy files/folders between a container and the local filesystem
 # 查看docker cp帮助文档
 [root@docker ~]# docker cp --help
 Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
     docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND                   CREATED          STATUS          PORTS                               NAMES
 d34e6c6d34d7   centos:latest   "/bin/bash"               3 minutes ago    Up 3 minutes                                        gifted_brown
 98646a277c8b   nginx:latest    "/docker-entrypoint.…"   31 minutes ago   Up 31 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   unruffled_gauss
 # 使用cp命令将服务器中的war包、jdk包、application.properties文件上传到容器中
 # 需要jdk17版本
 [root@docker ~]# docker cp Project_ExamSystem-V1.0.0.war d34e:/
 Successfully copied 41MB to d34e:/
 [root@docker ~]# docker cp jdk-17_linux-x64_bin.tar.gz d34e:/
 Successfully copied 183MB to d34e:/
 [root@docker ~]# docker cp application.properties d34e:/
 Successfully copied 4.1kB to d34e:/
 # 进入到容器中
 # 对已经传到容器的文件进行部署
 [root@docker ~]# docker attach d34e
 # 查看,是否上传成功
 [root@d34e6c6d34d7 /]# ls
 Project_ExamSystem-V1.0.0.war  dev   jdk-17_linux-x64_bin.tar.gz  lost+found  opt   run   sys  var
 application.properties         etc   lib              media       proc  sbin  tmp
 bin                home  lib64            mnt         root  srv   usr
 # 创建jdk目录
 [root@d34e6c6d34d7 /]# mkdir /usr/local/jdk
 # 将jdk包解压到jdk目录下
 [root@d34e6c6d34d7 /]# tar -zxf jdk-17_linux-x64_bin.tar.gz -C /usr/local/jdk/ --strip-components=1
 # 查看解压是否成功
 [root@d34e6c6d34d7 /]# ls /usr/local/jdk/
 LICENSE  README  bin  conf  include  jmods  legal  lib  man  release
 # 修改application.properties文件内容,指定数据库位置
 [root@d34e6c6d34d7 /]# vi application.properties
 spring.datasource.url=jdbc:mysql://10.0.0.7:3306/project_exam_system
 # 使用java命令运行war包
 [root@d34e6c6d34d7 /]# /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war
      : Started ProjectExamSystemApplication in 16.425 seconds (process running for 18.114)
 # ctrl p q 退出容器
 read escape sequence
 # 测试war包是否正常运行
 # 以下显示表示正常
 [root@docker ~]# curl 172.17.0.3:8080
 {"code":20002,"msg":"账号不存在或密码错误"}[root@docker ~]# 
2)将centos容器封装为java镜像并创建java容器
 # 查看commit帮助文档
 [root@docker ~]# docker commit --help
 Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
 # 根据容器创建镜像 
 [root@docker ~]# docker commit d34 java:v0
 sha256:1d715d202236751037fc5f67084c2e437e4aeb3159f5a9e74017d8f555e1767d
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
 java         v0        1d715d202236   31 seconds ago   774MB
 nginx        latest    5ef79149e0ec   2 weeks ago      188MB
 centos       latest    5d0da3dc9764   2 years ago      231MB
 # 停止centos容器
 [root@docker ~]# docker stop d34
 d34
 # 移除centos容器
 [root@docker ~]# docker rm d34
 d34
 # 根据新建的镜像,创建容器
 [root@docker ~]# docker run -itd -p8080:8080 java:v0 /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war 
 9337c1beb386d63b6c9ddc3bf25c1830af16505e6e29844a4599a10b2888f16c
 # 查看容器的进程
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                       NAMES
 9337c1beb386   java:v0        "/usr/local/jdk/bin/…"   4 seconds ago       Up 3 seconds       0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   boring_einstein
 98646a277c8b   nginx:latest   "/docker-entrypoint.…"   About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp           unruffled_gauss
3)结果展示
浏览器访问,出现500错误,说明java项目部署不对,主要是数据库未导入数据。

5、数据持久化业务 mysql-5.7.44
1)配置mysql容器并导入sql数据
 # 拉取mysql:5.7.44
 [root@docker ~]# docker pull mysql:5.7.44
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
 java         v0        1d715d202236   3 hours ago    774MB
 nginx        latest    5ef79149e0ec   2 weeks ago    188MB
 mysql        5.7.44    5107333e08a8   8 months ago   501MB
 centos       latest    5d0da3dc9764   2 years ago    231MB
 # 创建mysql容器
 [root@docker ~]# docker run -itd -e MYSQL_ROOT_PASSWORD=root -p3306:3306 mysql:5.7.44 
 9f30dfb770753a5b50872f29d961da87e41e7dcdfcd3e9e187193a8384cd2990
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
 9f30dfb77075   mysql:5.7.44   "docker-entrypoint.s…"   13 seconds ago   Up 11 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   heuristic_varahamihira
 9337c1beb386   java:v0        "/usr/local/jdk/bin/…"   3 hours ago      Up 3 hours      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              boring_einstein
 98646a277c8b   nginx:latest   "/docker-entrypoint.…"   4 hours ago      Up 4 hours      0.0.0.0:80->80/tcp, :::80->80/tcp                      unruffled_gauss
 # 创建mysql目录
 [root@docker ~]# mkdir mysql
 # 将sql文件移动到mysql目录下
 [root@docker ~]# mv project_exam_system.sql project_exam_system/mysql/
 # 使用Navicat Premium应用软件将sql文件中的数据导入到数据库中

2)进入数据库中创建指定用户并为用户授权
 # 进入数据库中查看数据
 [root@docker project_exam_system]# docker exec -it 9f30 mysql -uroot -proot
 mysql> show databases;
 +---------------------+
 | Database            |
 +---------------------+
 | information_schema  |
 | mysql               |
 | performance_schema  |
 | project_exam_system |
 | sys                 |
 +---------------------+
 5 rows in set (0.01 sec)
 mysql> use project_exam_system
 mysql> show tables;
 +-------------------------------+
 | Tables_in_project_exam_system |
 +-------------------------------+
 | admin                         |
 | category                      |
 | com_city                      |
 | com_nation                    |
 | course                        |
 | dept                          |
 | dept_student                  |
 | exam                          |
 | exam_dept                     |
 | exam_process                  |
 | loginlog                      |
 | major                         |
 | menu                          |
 | paper                         |
 | paper_topic                   |
 | role                          |
 | role_admin                    |
 | role_menu                     |
 | semester                      |
 | student                       |
 | teacher                       |
 | topic                         |
 | user                          |
 +-------------------------------+
 23 rows in set (0.00 sec)
 mysql> select * from user;
 +-----+--------------+----------+--------+---------------------+----------+---------------------+--------+-------+
 | id  | userName     | password | status | createTime          | createOr | editTime            | editOr | isDel |
 +-----+--------------+----------+--------+---------------------+----------+---------------------+--------+-------+
 |   1 | 21001189     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-22 22:04:44 | NULL   |     0 |
 |   2 | 21001190     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   3 | 21001191     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   4 | 21001192     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   5 | 21001193     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   6 | 21001194     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   7 | 21001195     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   8 | 21001196     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |   9 | 21001197     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 |  10 | 21001198     | 111111   |      0 | 2024-08-21 09:45:05 | NULL     | 2024-08-21 09:45:05 | NULL   |     0 |
 # 由于连接数据库使用的用户是zhangsan,所以我们需要创建zhangsan用户并授权
 mysql> create user 'zhangmin'@'%' identified by 'zhangmin';
 Query OK, 0 rows affected (0.09 sec)
 mysql> grant all on *.* to 'zhangmin'@'%';
 Query OK, 0 rows affected (0.02 sec)
 mysql> flush privileges;
 Query OK, 0 rows affected (0.04 sec)
3)结果展示

6、优化(使用Dockerfile直接制作java镜像)
1)创建java目录,将所需文件移动到java目录下
 [root@docker ~]# mkdir project_exam_system/java
 [root@docker ~]# mv jdk-17_linux-x64_bin.tar.gz project_exam_system/java/
 [root@docker ~]# mv application.properties project_exam_system/java/
 [root@docker ~]# mv Project_ExamSystem-V1.0.0.war project_exam_system/java/
 [root@docker ~]# cd project_exam_system/java/
 [root@docker java]# tar -zxf jdk-17_linux-x64_bin.tar.gz 
 [root@docker java]# mv jdk-17.0.12/ jdk
2)在java目录下编辑Dockerfile文件和java.sh脚本
 [root@docker java]# vim java.sh
 #!/bin/bash
 /usr/local/jdk/bin/java -jar /Project_ExamSystem-V1.0.0.war
 [root@docker java]# vim Dockerfile
 FROM centos:latest
 ADD application.properties /application.properties
 ADD Project_ExamSystem-V1.0.0.war /Project_ExamSystem-V1.0.0.war
 ADD jdk /usr/local/jdk
 ADD java.sh /java.sh
 WORKDIR /
 EXPOSE 8080
 RUN chmod +x /java.sh
 CMD ["/bin/bash","/java.sh"]
3)使用Dockerfile文件创建java镜像并创建一个java容器测试
 [root@docker java]# docker build -t java:v2 .
 [+] Building 3.1s (11/11) FINISHED 
 # 发现java:v2比java:v1小很多,由于使用的是centos镜像为基础镜像是关闭状态一层一层封装为java镜像的
 [root@docker java]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
 java         v2        d06359c88e57   23 minutes ago   591MB
 java         v0        1d715d202236   6 hours ago      774MB
 nginx        latest    5ef79149e0ec   2 weeks ago      188MB
 mysql        5.7.44    5107333e08a8   8 months ago     501MB
 centos       latest    5d0da3dc9764   2 years ago      231MB
 [root@docker java]# docker run -itd -p8081:8080 java:v2
 3bebbb51648947c5893e27da41540fab92d956812bf8def0595c46881dd54e72
 [root@docker java]# docker ps -a
 CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS         PORTS                                                  NAMES
 3bebbb516489   java:v2        "/bin/bash /java.sh"      10 seconds ago   Up 8 seconds   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp              nervous_zhukovsky
 9f30dfb77075   mysql:5.7.44   "docker-entrypoint.s…"   2 hours ago      Up 2 hours     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   heuristic_varahamihira
 9337c1beb386   java:v0        "/usr/local/jdk/bin/…"   5 hours ago      Up 5 hours     0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              boring_einstein
 98646a277c8b   nginx:latest   "/docker-entrypoint.…"   6 hours ago      Up 6 hours     0.0.0.0:80->80/tcp, :::80->80/tcp                      unruffled_gauss
 [root@docker java]# curl 10.0.0.7:8081
 {"code":20002,"msg":"账号不存在或密码错误"}[root@docker java]# 
 [root@docker java]# docker exec -it 3b ss -tupln | grep 8080
 tcp   LISTEN 0      128                *:8080            *:*    users:(("java",pid=7,fd=9))

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【 html+css 绚丽Loading 】 000031 三元轮回盘

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

揭秘Flutter职业版图:深度剖析最新Flutter岗位招聘动态

Flutter作为谷歌开发的开源移动UI框架&#xff0c;近年来在跨平台应用开发领域获得了显著的关注和应用。 随着Flutter的广泛应用&#xff0c;企业对于Flutter开发者的需求也在不断增加。这不仅仅体现在初创公司中&#xff0c;许多大型企业和科技公司也在积极寻找Flutter专业人…

智能体进化发展了一年,现在的RPA Agent迭代到什么程度了?

智能体进化发展了一年&#xff0c;现在的RPA Agent迭代到什么程度了&#xff1f;抓取豆瓣信息、自己制作PPT&#xff0c;这款AI Agent真的实现了流程全自动化AI Agent构建到执行全自动化&#xff0c;持续进化RPA Agent再次降低智能体应用门槛C端AI Agent构建与应用实现端到端&a…

1万多条华夏对联春联大全ACCESS\EXCEL数据库

对联是华#夏文化独有的一种文学艺术形式&#xff0c;讲究对仗工整&#xff0c;平仄协调&#xff0c;有固定格式和统一要求。今天这个数据库精选了古今流传的各类文字联上万余条。 分类情况统计&#xff1a;1春联&#xff08;3234&#xff09;、2婚联&#xff08;805&#xff09…

「C++系列」多态

【人工智能教程】&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站&#xff1a;【人工智能教程】 文章目录 一、多态1. 虚函数&#xff08;Virtual Functions&#xff09;2. …

多线程——概念

​ 进程 操作系统中进行资源分配的基本单位&#xff0c;进程就是进行中的程序&#xff0c;处于运行过程中的。 三个基本特征&#xff1a; 独立性&#xff1a;进程是独立运行&#xff0c;独立获取资源&#xff0c;独立接收调度的基本单。没有进程本身的统一&#xff0c;其他…

无人机专业大学生参与无人机飞手执照培训技术分析

无人机专业的大学生参与无人机飞手执照培训&#xff0c;不仅是获取职业资质的重要步骤&#xff0c;也是提升专业技能和就业竞争力的关键。以下是对无人机专业大学生参与无人机飞手执照培训的技术分析&#xff1a; 1. 培训内容的全面性 无人机飞手执照培训涵盖了从无人机基础知…

数据取证:GetData Forensic Explorer,强大的文件分析和数据恢复工具

天津鸿萌科贸发展有限公司是 GetData 公司 Forensic Explorer 电子数据取证调查软件的授权代理商。 Forensic Explorer 是一款适合新手和经验丰富的调查员使用的取证工具&#xff0c;它将灵活易用的图形界面与高级排序、过滤、关键词搜索、数据恢复和脚本技术相结合。可以快速处…

5个惊人策略:打造完美的企业内部知识库

引言&#xff1a; 在这个快速变化的商业环境中&#xff0c;拥有一个结构化和高效的内部知识库不再是可选项&#xff0c;而是企业成功的必需品。SaaS&#xff08;Software as a Service&#xff0c;软件即服务&#xff09;平台的兴起&#xff0c;为企业打造这样的内部知识库提供…

一文带你springai+ollama实现chat

Spring AI Spring AI 项目旨在简化开发集成了人工智能功能的应用程序&#xff0c;而不增加不必要的复杂性。该项目从一些著名的 Python 项目中汲取灵感&#xff0c;例如 LangChain 和 LlamaIndex&#xff0c;但 Spring AI 并不是这些项目的直接移植。该项目的创立基于这样的信念…

龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件

本专栏是笔者另一个专栏《龙芯RT-ThreadLVGL实战笔记》的姊妹篇&#xff0c;主要的区别在于实时操作系统的不同&#xff0c;章节的安排和任务的推进保持一致&#xff0c;并对源码做了完善与优化&#xff0c;各位可以先到本人主页下去浏览另一专栏的博客列表&#xff08;目前已撰…

基于Java的图书推荐系统的设计与实现(论文+源码)_kaic

摘要 随着中国城市现代化的发展进程越来越快&#xff0c;网络信息无论是数量还是传播速度早已超过纸质传媒&#xff0c;图书推荐系统是否能提供高效和优质的服务己成为图书阅读的重要环节。因此&#xff0c;需要构建一套基于Java编程语言的图书推荐系统。本系统使用Java语言和S…

嵌入式全栈开发学习笔记---shell脚本

目录 shell脚本有什么用&#xff1f; 第一个shell脚本 shell基本语法 shell变量 shell三种变量 环境级变量 用户级变量 系统级变量 在shell脚本中进行数学运算 shell数组 基本数组 关联数组 流程控制 If语句 Case语句 循环语句 While语句 For语句 上节我们学…

这可能是你在编程学习中最容易忽视的一课

引言 在编程学习的道路上&#xff0c;你是否曾感到困惑&#xff0c;面对着一堆复杂的术语和工具&#xff0c;不知道从何下手&#xff1f;刚开始编程时&#xff0c;是不是总觉得像走进了一片迷雾&#xff1f;别担心&#xff0c;你并不孤单。这篇文章将为你揭示“计算机教育中缺…

深度学习资料集合

社区推荐 AIQ 是一个专注于人工智能和机器学习的交流平台&#xff0c;旨在推动行业内的知识分享与技术交流。 专知 是一个聚焦于前沿科技和多领域知识的平台&#xff0c;提供丰富的文章和讨论&#xff0c;使用户能够深入理解机器学习及其应用。 DataTau DataTau 是一个数据…

Facebook与区块链:构建更安全的社交网络生态

随着数字化时代的不断推进&#xff0c;社交网络的安全性和隐私保护成为了用户最为关注的问题之一。Facebook&#xff0c;作为全球领先的社交媒体平台&#xff0c;正在探索如何利用区块链技术来增强其平台的安全性和透明度。这一探索不仅是对现有技术的补充&#xff0c;更是对未…

Android运行时权限详解

文章目录 Android运行时权限详解Android权限机制详解在程序运行时申请权限 Android运行时权限详解 Android的权限机制并不是什么新鲜事物&#xff0c;从系统的第一个版本开始就已经存在了。但其实之前Android的权限机制在保护用户安全和隐私等方面起到的作用比较有限&#xff…

利用OSINT追踪勒索组织活动

0X00前言 众所周知&#xff0c;勒索组织一直是臭名昭著的代名词。在当今网络世界上时时刻刻都存在着勒索软件的身影。正所谓&#xff0c;不知攻&#xff0c;焉知防。我们可以更据OSINT的方法&#xff0c;去追踪分析各大勒索组织的活动&#xff0c;以及状态。为应对可能的勒索攻…

【Python基础】元组类型

本文收录于 《Python编程入门》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程基础知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、Python 元组2.1 创建特殊元组2.2 访问元组2.3 删除元组2.4 元组截取2.5 元组运算符2.6 元组内置函…

佰朔资本:9月券商金股出炉,这类股获机构力推

现在&#xff0c;券商新一批月度金股近期连续出炉。到9月1日&#xff0c;14家券商发布9月月度金股&#xff0c;举荐的104只金股会集分布在电子、机械设备、传媒、汽车等工作中。从个股来看&#xff0c;比亚迪、我国安全、阳光电源获2家以上券商共同举荐。别的&#xff0c;北方华…