59在Linux中加docker中加mysql,tomcat,redis

image-20240729220401518

一、引言


1.1 环境不一致

我本地运行没问题啊:由于环境不一致,导致相同的程序,运行结果却不一致。

image-20240729221049181

1.2 隔离性

哪个哥们又写死循环了,怎么这么卡:在多用户的操作系统下,会因为其他用户的操作失误影响到你自己编些的程序。

1.3 弹性伸缩

淘宝在双11的时候,用户量暴增:需要很多很多的运维人员去增加部署的服务器,运维成本过高的问题。

1.4 学习成本

学习一门技术,得先安装啊:学习每一门技术都要先安装响应的软件,但是还有他所依赖的各种环境,安装软件成本快高过学习成本啦。

二、Docker介绍


2.1 Docker的由来

一帮年轻人创业,创办了一家公司,2010年的专门做PAAS平台。但是到了2013年的时候,像亚马逊,微软,Google都开始做PAAS平台。到了2013年,公司资金链断裂,不得不倒闭,于是将公司内的核心技术对外开源,核心技术就是Docker。由于开源了Docker,到了2014年的时候,得到了C轮的融资 4000W,2015年的时候,得到了D轮的融资9500W。于是公司开始全神贯注的维护Docker。

Docker主要作者-所罗门
image-20240729220447923
Docker的作者已经离开了维护Docker的团队
image-20240729220613733

2.2 Docker的思想

  • 集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。

  • 标准化:

    • 运输的标准化:Docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境,就直接指派大海疼去搬运这个集装箱就可以了。
    • 命令的标准化:Docker提供了一些列的命令,帮助我们去获取集装箱等等操作。
    • 提供了REST的API:衍生出了很多的图形化界面,Rancher。
  • 隔离性:Docker在运行集装箱内的内容时,会在Linux的内核中,单独的开辟一片空间,这片空间不会影响到其他程序。

  • 中央仓库|注册中心:超级码头,上面放的就是集装箱

  • 镜像:就是集装箱

  • 容器:运行起来的镜像

2.3 Docker架构

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker面向对象
容器对象
镜像

image-20240729221606039

三、Docker安装

1如果已安装,可以先删除

# 列出已安装的docker包
[root@localhost taotie]# yum list installed|grep docker 
# 如果有,就卸载
[root@localhost taotie]# yum -y remove docker-ce

2 安装yum-utils管理yum源

[root@localhost taotie]# yum install -y yum-utils

提示: 如果报错,下载yum-utils失败,安装如下操作

image-20240730194602311

image-20240730194714389

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

以上路径是从: 阿里巴巴开源镜像站找到的

3 设置docker源

# 配置国内镜像速度快
[root@localhost taotie]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4 设置元数据缓存

[root@localhost taotie]#  yum makecache fast

image.png

5 安装docker

# 安装指定版本
yum install --setopt=obsoletes=0 docker-ce-18.03.0.ce-1.el7.centos docker-ce-selinux-18.03.0.ce-1.el7.centos.noarch# 如果不指定版本,装最新版本
[root@localhost taotie]# yum -y install docker-ce 
# 如果最新版本安装失败,先执行如下两条命令,再安装最新版本
yum update -y nss curl libcurl
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

提示: 安装的过程时间可能较长…

6 启动docker

[root@localhost taotie]# systemctl start docker

注意:启动docker前,关闭防火墙 ,否则可能会启动失败

systemctl stop firewalld.service(最好设置成firewall不随机启动)

7 验证

[root@localhost taotie]#  docker run hello-world
  • docker run是要运行一个镜像,在本地生成一个容器

  • docker run hello-world,这是在运行一个名字叫做hello-world的镜像

  • 但是,现在刚装docker,本地没有这个hello-world镜像

  • 所以,就会从远程仓库下载

  • 但是可能会失败,因为最近(2024年5月左右docker国外镜像源被禁…)

8 设置镜像

拉取镜像时,需要通过镜像仓库,国外的仓库一般相对较慢,我们一般可以使用国内的镜像市场

国外 (已不能用)

https://hub.docker.com/

DaoCloud 国内(推荐、暂时能用)

https://hub.daocloud.io/

网易 需要注册(待考证)

https://c.163.com/hub#/m/home/


配置镜像:

[root@localhost taotie]# vi /etc/docker/daemon.json

{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"]
}

重启docker: [root@taotie ~]# systemctl restart docker

image-20240730195657237

四、Docker命令

docker search

可以从https://hub.daocloud.io/查看相关镜像,并拉取

查找镜像

img

注意:name表示镜像名称,official表示是否官方镜像

docker images

查看已经拉取的镜像文件

img

docker pull

语法:docker pull 镜像名称:tag

拉取镜像,如果不指定tag值,拉取最新镜像

[root@localhost ~]# docker pull daocloud.io/library/tomcat:9.0.0.M21-jre8

image.png

docker run

创建并运行容器tomcat容器

docker run -d --name mytomcat -p 8888:8080 -v /root/tomcat/webapps:/usr/local/tomcat/webapps -v /root/tomcat/logs:/usr/local/tomcat/logs daocloud.io/library/tomcat:9.0.0.M21-jre8

比如上面这个, 创建并启动tomcat容器

  • -d 让容器在后台运行
  • -P 将容器内部使用的网络端口随机映射到主机端口
  • -p 指定绑定端口,比如: -p 8888:8080 ,是将容器内的端口8080映射到宿主机的8888端口上
  • –name 创建容器时命名
  • -v ,比如 :/a/b/c:/x/y/z 表示将宿主机中/a/b/c目录挂载到容器的/x/y/z目录,如果有多个目录需要挂载,指定多个-v
-v /root/tomcat/webapps:/usr/local/tomcat/webapps ,表示将宿主机的/root/tomcat/webapps映射到容器的/usr/local/tomcat/webapps目录-v /root/tomcat/logs:/usr/local/tomcat/logs,表示将宿主机的/root/tomcat/logs映射到容器的/usr/local/tomcat/logs目录

提示: tomcat容器启动时,内部tomcat就已经启动了…

测试

将测试网页所在的文件夹(一定要有文件夹,因为相当于是项目),放入 /root/tomcat/webapps目录下

img

在宿主机通过 http://ip:8888/项目/ 的地址进行测试

img

docker ps

查看正在运行的容器

  • -a 查看全部容器
  • -f 根据条件过滤显示的内容(-f name=mytomcat)
  • –format 指定返回值的模板文件(docker ps --format “{{.ID}}: {{.Ports}} {{.Image}}— {{.Status}}----”)
  • -l 显示最近创建的容器
  • -n 列出最近创建的n个容器
  • -s 显示总的文件大小

img

docker ps –a 查看所有的容器,包括停止的容器

img

docker start

语法:docker start 容器名称/容器id

启动容器

img

docker stop

语法:docker stop 容器名称/id

停止容器

img

docker restart

语法:docker restart 容器名称/id

重启容器

img

docker exec

进入容器

docker exec -it mysql2 /bin/bash

再登录mysql: mysql -uroot -h127.0.0.1 -P3306 -p123456

image-20240708152038391

-it表示以交互方式运行容器

docker cp

语法:

docker cp 宿主机文件  容器名:容器中目录  # 从宿主机拷贝到容器中docker cp  容器名:容器中文件   宿主机目录 # 从容器中拷贝到宿主机

容器与主机之间的数据拷贝,可以将宿主机内容拷贝到容器,也可以将容器中内容拷贝到宿主机

img

docker rmi

语法:docker rmi 镜像名称:tag

imgageid 删除镜像,前提必须先删除相关容器

img

docker rm

语法:docker rm 容器名

根据容器名称删除容器

img

docker port

语法:docker port 容器名

查看容器的端口映射情况

img

docker inspect

语法:docker inspect 容器名

查看docker容器的详细信息

重点关注, 容器和宿主机之间挂载的路径和映射的端口信息

docker version

查看版本

五、拉取常用镜像并生成容器

项目部署相关的环境,如redis,mysql,nginx等

5.1 redis

拉取redis

docker pull daocloud.io/library/redis:5.0.7

image-20240708145151888

创建容器并运行

docker run -p 6379:6379 --name myredis -v /root/redis/conf/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d daocloud.io/library/redis:5.0.7 redis-server /etc/redis/redis.conf

命令说明:

–name myredis : 指定容器名称

-p 6379:6379 : 端口映射,默认redis启动的是6379。

-v /root/redis/conf/redis.conf:/etc/redis/redis.conf : 将主机中指定目录下的redis.conf配置文件映射

-v /root/redis/data:/data : 将主机中指定目录下的data挂载到容器的/data

–redis-server 在容器执行redis-server启动命令

–appendonly yes :打开redis持久化配置

注意:配置文件中,不能配置为后台启动,否则,redis容器无法启动

测试能否连上redis

docker exec -it myredis redis-cli

image-20240708151632862

OK

5.2 mysql

拉取mysql

docker pull daocloud.io/library/mysql:5.7.30

image-20240708145204666

创建容器并运行

docker run -d -p 3306:3306 -v /root/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql2 daocloud.io/library/mysql:5.7.30

-e:配置信息,此处配置mysql的root用户的登陆密码

-v /root/mysql/conf/my.cnf:/etc/my.cnf:映射配置文件

-v /root/mysql/data:/var/lib/mysql:映射数据目录

如果执行上面命令,报错如下

image-20240708151252226

解决方案:

1.检查linux服务器中/root/mysql/conf路径是否有my.cnf文件,注意是文件,不是文件夹

2.如果是文件夹,删除掉,然后重新新建my.cnf文件

3.并执行chmod -R 777 /root/mysql 将该路径下的所有文件夹和文件设置最大权限

4.docker ps -a查看刚才创建失败的mysql2容器, 找到容器id,执行docker rm [imageid]将容器删除掉

5.重新执行命令产生镜像即可


也有可能是权限问题,设置宿主机权限为777,命令如下

chmod -R 777 /路径

测试能否连接,可以使用linux的命令

先进入容器: docker exec -it mysql2 /bin/bash

再登录mysql: mysql -uroot -h127.0.0.1 -P3306 -p123456

image-20240708152038391

OK

5.3 nginx

拉取nginx

docker pull daocloud.io/library/nginx:latest

image-20240708145213125

创建容器

docker run -d --name mynginx -p 99:80 -v /root/docker_nginx/conf.d:/etc/nginx/conf.d -v /root/docker_nginx/dist:/usr/share/nginx/html  daocloud.io/library/nginx:latest 

配置前端页面的挂载目录 -v /root/docker_nginx/dist:/usr/share/nginx/html


在宿主机目录新建配置文件

在本地映射的数据卷的目录/root/docker_nginx/conf.d/下面创建一个新的配置文件default.conf

配置文件的内容如下:

# 这个是 /etc/nginx/conf.d/default.conf
server {    # server 块是http 块中的 内容listen       80;    # nginx 默认监听的端口号listen  [::]:80;    server_name  localhost;  # ip # location块# root:将接收到的请求根据/usr/share/nginx/html去查找静态资源# index: 默认去上述的路径中找到index.html或者index.htmlocation / {root   /usr/share/nginx/html;index  index.html index.htm;# proxy_pass http://192.168.17.101:8088; # 设置代理路径,ip是linux系统所分配ip}#50x 错误页面跳转 error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}

重启: docker exec mynginx nginx -s reload

在windows系统中测试:http://ip:80

如果没有页面,可以在宿主机的/root/docker_nginx/dist中创建一个index.html页面,自己编写一个页面

<html>
<head><title>测试</title>
</head>
<body>
<h1>2024 test nginx</h1>
</body>
</html>

再试一次即可

六、docker-compose[了解]

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排

6.1 下载 (老版本需要,现在最新版本不用下载)

注意:将docker-compose下载到/user/local/bin目录下

curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

image.png

6.2 设置权限 (老版本需要,现在最新版本不用)

chmod 777 /usr/local/bin/docker-compose

image.png

6.3 测试docker-compose命令 (老版本需要,现在最新版本不用下载)

在任意目录,运行docker-compose命令

image.png

现在新版本的命令是 docker compose,不用中间那个-连字符

6.4 docker-compose的容器编排文件

文件名:docker-compose.yml

yml文件使用key: value方式来指定配置信息 ,key: value 冒号后面必须有个空格
配置信息通过缩进表示层级关系,缩进使用的是两个空格,不是制表符
在docker-compose.yml文件中,不要使用制表符

version: '3.1'
services:mysql:           # 服务的名称restart: always   # 代表只要docker启动,那么这个容器就跟着一起启动image: daocloud.io/library/redis:5.0.7  # 指定镜像路径container_name: mysql2  # 指定容器名称ports:- 3306:3306   #  指定端口号的映射environment:MYSQL_ROOT_PASSWORD: 123456   # 指定MySQL的ROOT用户登录密码TZ: Asia/Shanghai        # 指定时区volumes:- /root/docker_compose/mysql/data:/var/lib/mysql   # 映射数据卷tomcat:restart: alwaysimage: daocloud.io/library/tomcat:9.0.0.M21-jre8container_name: mytomcatports:- 8888:8080environment:TZ: Asia/Shanghaivolumes:- /root/docker_compose/tomcat/webapps:/usr/local/tomcat/webapps- /root/docker_compose/tomcat/logs:/usr/local/tomcat/logs redis:restart: alwaysimage: daocloud.io/library/redis:5.0.7container_name: myredisports:- 6379:6379environment:TZ: Asia/Shanghaivolumes:- /root/docker_compose/redis/conf/redis.conf:/etc/redis/redis.conf- /root/docker_compose/redis/data:/data

如果以前docker中有这些容器,会报错,建议是将之前的容器删除,再统一使用compose管理

注意:比如docker-compose.yml处于/root目录下,默认会创建一个名字是 root_default的网络,容器默认都会加入这个网络中,不同的容器间,通过服务名+容器的端口号进行通信。

比如,如下数据库的连接url,mysql:3306,其中mysql是在文件中配置的服务名

jdbc:mysql://mysql:3306/video2214?serverTimezone=Asia/Shanghai&useSSL=false

注意: 即使使用了compose管理,也可以再单独使用docker命令操作其中某个容器

6.5 相关命令

# 基于docker-compose.yml启动被管理的容器(如果没有镜像,会直接拉取镜像并创建容器)
docker compose up -d

image-20240802194514102

# 查看由docker-compose管理的容器
docker compose ps

image-20240802194458346

# 开启|关闭|重启已经存在的由docker-compose维护的容器
docker compose start|stop|restart

image-20240802194437122

 docker compose down 

关闭并删除容器

image-20240802194412524

比如,如下数据库的连接url,mysql:3306,其中mysql是在文件中配置的服务名

jdbc:mysql://mysql:3306/video2214?serverTimezone=Asia/Shanghai&useSSL=false

注意: 即使使用了compose管理,也可以再单独使用docker命令操作其中某个容器

6.5 相关命令

# 基于docker-compose.yml启动被管理的容器(如果没有镜像,会直接拉取镜像并创建容器)
docker compose up -d

[外链图片转存中...(img-hOTPXK93-1722599139182)]

# 查看由docker-compose管理的容器
docker compose ps

[外链图片转存中...(img-fLXqT4Gv-1722599139183)]

# 开启|关闭|重启已经存在的由docker-compose维护的容器
docker compose start|stop|restart

[外链图片转存中...(img-k8Ksz2tn-1722599139183)]

 docker compose down 

关闭并删除容器

[外链图片转存中...(img-UxnxOQBC-1722599139184)]

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

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

相关文章

Logistic回归

Logistic回归模型&#xff1a; 适用于二分类或多分类问题&#xff0c;样本特征是数值型&#xff08;否则需要转换为数值型&#xff09; 策略&#xff1a;极大似然估计 算法&#xff1a;随机梯度 或 BFGS算法&#xff08;改进的拟牛顿法&#xff09; 线性回归表达式&#xf…

队列的基本运算(顺序,环形,链式)

以下分别介绍了顺序队列&#xff0c;环形队列&#xff0c;链式队列的基本运算。主要有五种基本运算&#xff1a;1.初始化队列&#xff0c;2.销毁队列&#xff0c;3.判断队列是否为空&#xff0c;4.进队列&#xff0c;5.出队。 目录 顺序队列 环形队列 链式队列 顺序队列与环…

upload-labs靶场练习

文件上传函数的常见函数&#xff1a; 在PHP中&#xff0c;‌文件上传涉及的主要函数包括move_uploaded_file(), is_uploaded_file(), get_file_extension(), 和 mkdir()。‌这些函数共同协作&#xff0c;‌使得用户可以通过HTTP POST方法上传文件&#xff0c;‌并在服务器上保存…

pycharm安装与配置Pyqt5

pycharm安装与配置Pyqt5 1、创建项目、虚拟环境 打开pycharm&#xff0c;File->New Project 2、安装pyqt5库 在pycharm下方Terminal终端窗口输入&#xff1a; pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools -i https://pypi.douban.c…

模拟实现strcmp,判断二个字符串是否相等

1.判断二个字符串是否相等&#xff0c;可以模仿strcmp.当二个字符串相等的时候ruturn 0.,当二个字符串小于时返回为小于0&#xff0c;当二个字符串大于时返回为大于0。const为不可以更改。 //方法一 int my_strcmp(const char* arr1, const char* arr2) {assert(arr1 &&…

CFA FRM原創講義和視頻等備考全部資料內容,順便征求建議

大家好&#xff0c;我是小伯&#xff0c; 曾經我也很喜歡上這個壇子查資料&#xff0c;好多年過去&#xff0c;現在論壇蠻雕零的很感慨。我和幾個朋友原創作了一些CFA一級二級三級和FRM一級二級雙語中英文的課件、視頻、資料&#xff0c; 是我們從2024年起一起合作的一個以自學…

C语言 | Leetcode C语言题解之第316题去除重复字母

题目&#xff1a; 题解&#xff1a; char* removeDuplicateLetters(char* s) {int vis[26], num[26];memset(vis, 0, sizeof(vis));memset(num, 0, sizeof(num));int n strlen(s);for (int i 0; i < n; i) {num[s[i] - a];}char* stk malloc(sizeof(char) * 27);int stk…

算法学习day27

一、寻找重复数(链表中找环) 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。 题意&#xff1a…

[Git][认识Git]详细讲解

目录 1.什么是仓库&#xff1f;2.认识工作区、暂存区、版本库3.认识 .git1.index2.HEAD && master3.objects4.总结 1.什么是仓库&#xff1f; 仓库&#xff1a;进⾏版本控制的⼀个⽂件⽬录 2.认识工作区、暂存区、版本库 工作区&#xff1a;在电脑上写代码或⽂件的⽬录…

Java Excel复杂表头,表头合并单元格

Java Excel复杂表头&#xff0c;表头合并单元格 效果预览 一、maven依赖 <!--操作excel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.1</version><scope>test</…

【C++标准模版库】vector的介绍及使用

vector 一.vector的介绍二.vector的使用1.vector 构造函数2.vector 空间增长3.vector 增删查改4.vector 迭代器的使用1.正向迭代器2.反向迭代器 5.victor 迭代器失效问题&#xff08;重点&#xff09; 三.vector不支持 流提取与流插入四.vector存储自定义类型1.存储string2.存储…

大数据环境安装Elasticsearch Kibana可视化

1、用yum安装&#xff0c;配置仓库和镜像。 2、用离线软件包&#xff0c;rpm安装。 服务器环境CentOS7.9 因为云安装&#xff0c;配置镜像版本一直没有成功&#xff0c;改为直接下载软件安装。 官方网址&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch 因为要…

linux用户组练习

准备工作 [rootlocalhost ~]# watch -n 1 tail -n 5 /etc/group使用watch 动态监控 1.建立用户组 shengcan&#xff0c;其id 为2000 2.建立用户组 caiwu&#xff0c;其id 为 2001 3.足建立用户组 jishu&#xff0c;其id 为 2002 4.建立用户lee&#xff0c;指定其主组id为sh…

【开源】嵌入式Linux(IMX6U)应用层综合项目(1)--云平台调试APP

目录 1.简介 1.1功能介绍 1.2技术栈介绍 1.3演示视频 1.4硬件介绍 2.软件设计 2.1连接阿里云 2.2云平台调试UI 2.3Ui_main.c界面切换处理文件 2.4.main函数 3.结尾&#xff08;附网盘链接&#xff09; 1.简介 此文章并不是教程&#xff0c;只能当作笔者的学习分享&…

江协科技51单片机学习- p31 LCD1602液晶屏驱动

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

端到端自动驾驶:挑战与前沿

End-to-end Autonomous Driving: Challenges and Frontiers 端到端自动驾驶&#xff1a;挑战与前沿 Abstract The autonomous driving community has witnessed a rapid growth in approaches that embrace an end-to-end algorithm framework, utilizing raw sensor input …

OpenSPG安装部署

文章目录 前言一、安装前准备安装docker安装docker compose 二、安装服务端下载 docker-compose.yml 文件启动服务端 三、安装客户端拉取镜像克隆OpenSPG源码 案例 前言 OpenSPG是以SPG框架为基础设计和实现的知识图谱开放引擎&#xff0c;它为领域图谱构建提供了明确的语义表…

常见病症之中医药草一枝黄花

常见病症之中医药草一枝黄花 1. 源由2. 一枝黄花植物描述药用部分主要成分药理作用使用方法注意事项 3. 常用方剂3.1 一枝黄花汤3.2 一枝黄花解毒汤 4. 着凉感冒主要方剂加味处方使用方法注意事项 5. 补充资料 1. 源由 注&#xff1a;仅供参考&#xff0c;建议在中医师指导下使…

电商兴农,柳湖新篇:特色产品助力乡村发展

在 2024 年这个充满希望与活力的年份&#xff0c;电商兴农的热潮如同一股春风&#xff0c;吹进了柳湖这片充满生机的土地。玄鹤洞油茶、醋&#xff0c;食家巷特色传统面点、陇原雪陇强面粉、陇源香亚麻籽油等特色产品&#xff0c;以及众多农家的积极参与&#xff0c;共同书写了…

欧科云链7月安全月报 | 私钥泄露损失约占总损失88%,超2.6亿美元

7 月全网累计造成损失约 2.9 亿美元&#xff0c;因私钥泄露所造成损失占总损失的 88.31%&#xff0c;其中 WazirX 因多签钱包私钥泄露&#xff0c;造成约 2.35 亿美元的损失&#xff0c;为 7 月最大安全事件。 最大安全事件-私钥泄漏 7 月 18 日&#xff0c;WazirX 多签钱包私…