云计算实训37——Dockerfile的应用+私有仓库的创建与管理

一、文件联合系统

文件联合系统(Overlay Filesystem):

是一种允许多个文件系统层叠在一起的文件系统。它通常用于将只读文件系统(如基础镜像)与可写文件系统(如用户的修改)结合,形成一个单一的文件系统视图。这种技术在容器化环境(如 Docker)和虚拟化中得到了广泛应用。

Overlay 文件系统的主要特点包括:

  1. 多层次结构:文件系统可以分为多个层,每一层可以是只读或可写。用户的修改会在最上层进行,而基础层保持不变。

  2. 高效性:Overlay 文件系统只在必要时加载数据,这样可以节省存储空间和提高性能。

  3. 文件共享:多个容器或用户可以共享相同的只读层,减少数据冗余。

  4. 快照和版本控制:由于其层叠结构,可以轻松创建快照并管理不同版本的文件系统。

在实际应用中,OverlayFS 是 Linux 系统中常用的实现,它提供了高效的文件系统组合能力,使得在开发和运行应用时更加灵活。

二、dockerfile应用

通过dockerfile创建⼀个在启动容器时,就可以启动httpd服务的镜像

步骤 :

1.创建⼀个⽬录,⽤于存储Docker file所使⽤的⽂件

2.在此⽬录中创建Docker file⽂件,以及镜像制作所使⽤的⽂件

3.使⽤docker build创建镜像

4.使⽤创建的镜像启动容器(验证)

1.使用Dockerfile创建httpd镜像

# 停止docker服务
[root@docker ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:docker.socket# 删除docker文件
[root@docker ~]# rm -rf /var/lib/docker/*# 启动docker服务
[root@docker ~]# systemctl start docker# 拉取centos镜像
[root@docker ~]#  docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest# 创建001目录
[root@docker ~]# mkdir 001# 进到001目录下
[root@docker ~]# cd 001/# 编辑启动脚本
[root@docker 001]# vim abc.sh# !/bin/bashrm -rf /run/httpd/*exec /sbin/httpd -D FOREGROUND# 查看创建的脚本
[root@docker 001]# ls
abc.sh# 编辑index.html文件
[root@docker 001]# echo "httpd server is running" > index.html
[root@docker 001]# ls
abc.sh  index.html# 编辑Dockerfile文件
[root@docker 001]# vim Dockerfile
FROM    centos:latestMAINTAINER      "centos httpd server"RUN     rm -rf /etc/yum.repos.d/*  RUN     curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repoRUN     yum clean all && yum makecacheRUN     yum -y install epel-releaseRUN     yum -y install httpdADD     abc.sh /abc.shADD     index.html /var/www/html/index.htmlRUN     chmod -v +x /abc.shCMD     ["/bin/bash","/abc.sh"]# 初看当前的路径
[root@docker 001]# pwd
/root/httpd0# 查看创建的文件
[root@docker 001]# ls
abc.sh  Dockerfile  index.html# 创建镜像
[root@docker 001]# docker build -t centos:httpd .
[+] Building 64.6s (14/14) FINISHED                                    docker:default=> [internal] load build definition from Dockerfile                             0.0s=> => transferring dockerfile: 546B                                             0.0s=> [internal] load metadata for docker.io/library/centos:latest                 0.0s=> [internal] load .dockerignore                                                0.0s=> => transferring context: 2B                                                  0.0s=> [1/9] FROM docker.io/library/centos:latest                                   0.0s=> [internal] load build context                                                0.0s=> => transferring context: 282B                                                0.0s=> [2/9] RUN     rm -rf /etc/yum.repos.d/*                                      0.2s=> [3/9] RUN     curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.ali  0.5s=> [4/9] RUN     yum clean all && yum makecache                                37.5s=> [5/9] RUN     yum -y install epel-release                                    1.5s => [6/9] RUN     yum -y install httpd                                          24.4s => [7/9] ADD     abc.sh /abc.sh                                                 0.0s => [8/9] ADD     index.html /var/www/html/index.html                            0.0s => [9/9] RUN     chmod -v +x /abc.sh                                            0.1s => exporting to image                                                           0.3s => => exporting layers                                                          0.3s => => writing image sha256:75b16235c09a77040511b510a9c1e9b64a81b779f611e9baf80  0.0s => => naming to docker.io/library/centos:httpd                                  0.0s# 查看镜像
[root@docker 001]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       httpd     75b16235c09a   2 minutes ago   338MB
centos       latest    5d0da3dc9764   2 years ago     231MB# 查看docker文件的变化
[root@docker 001]# ls /var/lib/docker/overlay2/
2e14mkmhsyqml8yz8xx6gkkfn
3gptwrcuxsr2z3ud201n5gg9j
backingFsBlockDev
e0dfg5mgrat7u2jzgxvgfj6mx
fc6fcbe50f7cd8967fba6b54c30675443571463587d0d0bc735cd28a4214dbd4
gwiapvpmctfmwsjpj4fhwpwfk
i1no1l3564opovspusav7juge
iafohrok69hr2srb4sgehmeq1
kh7i34l3wsr17f41sv1mpbnqr
l
nghnnma9u2ktpsgeb9kxxzjjm
oor91hz24u4ux6v2h0u2ayx6v
qta19zq5kinbictlivuvkr06r
tyce637p8xvl9en1bx2lg086s# 创建容器测试
[root@docker 001]# docker run -d --name c0 centos:httpd 
d398df1d2b235ad09068fa3b84b9ad2e0c31c03815982a92882609055a04d9ae# 查看容器
[root@docker 001]# docker ps --all
CONTAINER ID   IMAGE          COMMAND               CREATED          STATUS         PORTS     NAMES
d398df1d2b23   centos:httpd   "/bin/bash /abc.sh"   10 seconds ago   Up 9 seconds             c0# 访问测试
[root@docker 001]# curl 172.17.0.2
httpd server is running# 容器挂载
[root@docker 001]# docker run -d -v /opt/:/var/www/html/ -p80 --name c1 centos:httpd
cb8c1626ce9a6ea8986c40f0efa4f657192ff7babf9aecd4acbfcc115f7e5d83
[root@docker 001]# ls /opt/
assets  containerd  favicon.ico  index.html# 写测试内容
[root@docker 001]# echo "adsfadfafwqrdfqdsafdgdfsgda" > /opt/index.html# 访问测试
[root@docker 001]# curl 172.17.0.2
adsfadfafwqrdfqdsafdgdfsgda# 查看容器
[root@docker 001]# docker ps -all
CONTAINER ID   IMAGE          COMMAND               CREATED          STATUS          PORTS                                     NAMES
cb8c1626ce9a   centos:httpd   "/bin/bash /abc.sh"   22 seconds ago   Up 22 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   c1

浏览器访问:192.168.2.30:32768

2.使用Dockerfile创建yum镜像

# 修改Dockerfile文件
[root@docker 001]# vim Dockerfile 
FROM    centos:latestMAINTAINER      "centos httpd server"RUN     rm -rf /etc/yum.repos.d/*RUN     curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repoRUN     yum clean all && yum makecacheRUN     yum -y install epel-release# 运行文件创建镜像
[root@docker 001]# docker build -t centos:yum .
[+] Building 0.0s (9/9) FINISHED                                       docker:default=> [internal] load build definition from Dockerfile                             0.0s=> => transferring dockerfile: 385B                                             0.0s=> [internal] load metadata for docker.io/library/centos:latest                 0.0s=> [internal] load .dockerignore                                                0.0s=> => transferring context: 2B                                                  0.0s=> [1/5] FROM docker.io/library/centos:latest                                   0.0s=> CACHED [2/5] RUN     rm -rf /etc/yum.repos.d/*                               0.0s=> CACHED [3/5] RUN     curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirr  0.0s=> CACHED [4/5] RUN     yum clean all && yum makecache                          0.0s=> CACHED [5/5] RUN     yum -y install epel-release                             0.0s=> exporting to image                                                           0.0s=> => exporting layers                                                          0.0s=> => writing image sha256:ee9375ac855c3a1f8ec3eb03cee9317c3127e4be47cb3d6f519  0.0s=> => naming to docker.io/library/centos:yum                                    0.0s# 查看镜像
[root@docker 001]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       httpd     ebbf109944f1   5 minutes ago   338MB
centos       yum       ee9375ac855c   5 minutes ago   272MB
centos       latest    5d0da3dc9764   2 years ago     231MB# 查看docker磁盘使用情况
[root@docker 002]# du -sh /var/lib/docker/overlay2/
1.1G	/var/lib/docker/overlay2/

3.使用Dockerfile创建nginx镜像

# 创建目录
[root@docker ~]# mkdir 002# 进到002目录下
[root@docker ~]# cd 002/# 编辑Dockerfile文件
[root@docker 002]# vim Dockerfile# 这里使用之前创建的yum镜像
FROM    centos:yum MAINTAINER      维护世界和平RUN     yum -y install nginxRUN     yum -y install epel-releaseRUN     echo "daemon off;" >> /etc/nginx/nginx.confEXPOSE  80CMD     /usr/sbin/nginx# 运行Dockerfile文件-创建nginx镜像
[root@docker 002]# docker build -t centos:nginx .
[+] Building 80.1s (8/8) FINISHED                                      docker:default=> [internal] load build definition from Dockerfile                             0.0s=> => transferring dockerfile: 280B                                             0.0s=> [internal] load metadata for docker.io/library/centos:yum                    0.0s=> [internal] load .dockerignore                                                0.0s=> => transferring context: 2B                                                  0.0s=> [1/4] FROM docker.io/library/centos:yum                                      0.0s=> [2/4] RUN YUM -y install nginx                                              73.0s=> [3/4] RUN YUM -y install epel-release                                        6.5s=> [4/4] RUN ECHO "daemon" > /etc/nginx/nginx.conf                              0.1s => exporting to image                                                           0.4s => => exporting layers                                                          0.4s => => writing image sha256:c7c536aca7946e111b2af5f1d2806bdac9f1e9a59d8bd05ccac  0.0s => => naming to docker.io/library/centos:nginx                                  0.0s # 查看镜像
[root@docker 002]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       nginx     c7c536aca794   58 seconds ago   422MB
centos       httpd     ebbf109944f1   29 minutes ago   338MB
centos       yum       ee9375ac855c   29 minutes ago   272MB
centos       latest    5d0da3dc9764   2 years ago      231MB# 使用nginx镜像创建容器c1
[root@docker 002]# docker run -d --name nc centos:nginx 
34bf6e6f1ecfcb0e1f717385a3553fe058bab65caa4603280951d98976efebe6# 查看创建的容器
[root@docker 002]# docker ps --all
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                     NAMES
34bf6e6f1ecf   centos:nginx   "/bin/sh -c /usr/sbi…"   8 seconds ago       Up 7 seconds       80/tcp                                    nc
4c437591541d   centos:nginx   "/bin/sh -c /usr/sbi…"   4 minutes ago       Up 4 minutes       80/tcp                                    ng
cb8c1626ce9a   centos:httpd   "/bin/bash /abc.sh"       About an hour ago   Up About an hour   0.0.0.0:32768->80/tcp, :::32768->80/tcp   c1
d398df1d2b23   centos:httpd   "/bin/bash /abc.sh"       About an hour ago   Up About an hour                                             c0

三、私有仓库

1.安装registry

# 查看安装的镜像
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED             SIZE
centos       nginx     4a14f7d33da9   8 minutes ago       422MB
centos       httpd     ebbf109944f1   About an hour ago   338MB
centos       yum       ee9375ac855c   About an hour ago   272MB
registry     latest    cfb4d9904335   10 months ago       25.4MB
centos       latest    5d0da3dc9764   2 years ago         231MB

2.创建容器,映射端⼝,挂载⽂件

# 创建挂载目录
[root@docker ~]# mkdir /regist# 查看容器--全部删掉
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES# 创建容器,映射端⼝,挂载⽂件
[root@docker ~]# docker run -d --name r1 -v /regist/:/var/lib/registry -p5000:5000 registry:latest
4cd2b4d2c49fb4bdc6cf64aacea6c72a38f2c0eb3beccc6ed6845447b081a06f# 查看创建的容器
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE             COMMAND                   CREATED         STATUS         PORTS                                       NAMES
4cd2b4d2c49f   registry:latest   "/entrypoint.sh /etc…"   3 seconds ago   Up 2 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   r1# 访问目录页
[root@docker ~]# curl localhost:5000/v2/_catalog
{"repositories":[]}

3.浏览器访问

192.168.2.30:5000/v2/_catalog

4.配置pull和push,修改daemon.json文件

[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"],"hosts":  ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"],"insecure-registries":["http://192.168.2.30:5000"]
}

5.修改了daemon.json文件,重启服务

[root@docker ~]# systemctl restart docker.service 

6.启动registry容器

# 查看容器
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE             COMMAND                   CREATED          STATUS                     PORTS     NAMES
4cd2b4d2c49f   registry:latest   "/entrypoint.sh /etc…"   10 minutes ago   Exited (2) 2 minutes ago             r1# 启动r1容器
[root@docker ~]# docker start r1
r1# 访问⽬录⻚
[root@docker ~]# curl localhost:5000/v2/_catalog
{"repositories":[]}

7.给yum镜像打标签

# 为要上传的镜像添加标记
[root@docker ~]# docker tag centos:yum 192.168.2.30:5000/centos:yum# 查看打标签的镜像
[root@docker ~]# docker images
REPOSITORY                 TAG       IMAGE ID       CREATED          SIZE
centos                     nginx     4a14f7d33da9   33 minutes ago   422MB
centos                     httpd     ebbf109944f1   2 hours ago      338MB
192.168.2.30:5000/centos   yum       ee9375ac855c   2 hours ago      272MB
centos                     yum       ee9375ac855c   2 hours ago      272MB
registry                   latest    cfb4d9904335   10 months ago    25.4MB
centos                     latest    5d0da3dc9764   2 years ago      231MB

8.将打标签的镜像上传到registry上

[root@docker ~]# docker push 192.168.2.30:5000/centos:yum
The push refers to repository [192.168.2.30:5000/centos]
8c519ad003b5: Pushed 
acbca50d3a83: Pushed 
75cdf155cf76: Pushed 
07d4b334a739: Pushed 
74ddd0ec08fa: Pushed 
yum: digest: sha256:fa3b19efa5dd7e95f2ea17a3d3ffd2b22ffedc3ddef9af6a69e60239db568a6c size: 1366

9.在主机上进行访问

[root@docker ~]# curl localhost:5000/v2/_catalog
{"repositories":["centos"]}

10.浏览器访问

192.168.2.30:5000/v2/_catalog

11.查看regist文件

[root@docker ~]# ls /regist/
docker
[root@docker ~]# cd /regist/docker/
[root@docker docker]# ls
registry
[root@docker docker]# cd registry/
[root@docker registry]# ls
v2
[root@docker registry]# cd v2
[root@docker v2]# ls
blobs  repositories
[root@docker v2]# cd repositories/
[root@docker repositories]# ls
centos
[root@docker repositories]# cd centos/
[root@docker centos]# ls
_layers  _manifests  _uploads
[root@docker centos]# cd _layers/
[root@docker _layers]# ls
sha256
[root@docker _layers]# cd sha256/
[root@docker sha256]# ls
30902bbca4a1d948703fd88d834ddf4dc8db69bb7e787ff18a762b6b4761fe37
46aacd2dd64664a37b01ee3a9f37561ed9b34c5af6661b880ee07a15d5fe8fd6
5a3d9ba04912ac6b1353410a0f18cc206b4920888e3187443abacefe3c9086ab
a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1
ca847d29e1079f24cfc92b68cf37d5866060814df67cbdcd83edb16f1dc4fe54
ee9375ac855c3a1f8ec3eb03cee9317c3127e4be47cb3d6f519d9e6921a6a044

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

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

相关文章

【3D目标检测】MMdetection3d——nuScenes数据集训练BEVFusion

引言 MMdetection3d:【3D目标检测】环境搭建(OpenPCDet、MMdetection3d) MMdetection3d源码地址:https://github.com/open-mmlab/mmdetection3d/tree/main?tabreadme-ov-file IS-Fusion源码地址:https://github.co…

dbc转换成excel

‌要将DBC文件转换为Excel格式,可以使用Canoe软件进行导出。‌ 使用Canoe软件将DBC文件导出为Excel格式的具体步骤如下: 打开Canoe软件,并在项目工程中加载或创建一个DBC文件。在主菜单中选择“文件”>“导出”>“数据库”选项。在打…

【Scala】Windows下安装Scala(全面)

目录 1.下载 2.安装 3.配置环境变量 1.新增系统环境变量 2.环境变量Path 4.验证 1.下载 官网下载地址:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.msi 2.安装 双击下载的.msi文件: 勾选"I accept the terms in the Li…

前后端交互的路径怎么来的?后端解决cors问题的一种方法

背景:后端使用node.js搭建,用的是express 前端请求的路径baseURL怎么来的 ? 前后端都在同一台电脑上运行,后端的域名就是localhost,如果使用的是http协议,后端监听的端口号为3000,那么前端请求…

Django+Vue音乐推荐系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…

脚手架工具的应用(前端和后端搭建)

前端 一、安装 Node.js 环境 使用npm下载镜像 查看镜像:npm config get registry 切换淘宝镜像:npm config set registry https://registry.npmmirror.com 还原镜像:npm config set registry https://registry.npmjs.org 二、使用 Vue.js 脚…

智能停车场管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,车位信息管理,车位预订管理,系统管理 微信端账号功能包括:系统首页,地图,我的 开发系统:Windows 架构模式…

如何将开发工具设置成滚动鼠标改变字体大小

就在刚刚与温州那边技术开会,温州那边技术提出:字体太小,代码看不清,需要将字体放大。然后让我将IDE设置成按住键盘的Ctrl滚动鼠标,可以放大字体大小。。。顿时间的小小尴尬。下面我来记录一下究竟是怎么操作的&#x…

使用GitHub Actions的Self-hosted runner

登录github网站选择项目点击Settings按钮,进入设置页面点击actions/runners进入Runners页面点击New self-hosted runner按钮进入新增页面选择相应配置,生成相应的命令,在内网机器上运行 下载: # Create a folder $ mkdir actions-…

安装WMware和Ubuntu并使用xShell连接

0、我的电脑配置 设备名称 hello 处理器 Intel(R) Core(TM) i7-10700K CPU 3.80GHz 3.79 GHz 机带 RAM 16.0 GB (15.9 GB 可用) 设备 ID 541EC230-9910-418C-9043-5FBBF8ED320C 产品 ID 00330-80000-00000-AA846 系统类型 64 位操作系统, 基于 x64 的处理器 笔和触控 没有可…

汽车功能安全--TC3xx LBIST触发时机讨论

目录 1. LBIST架构 2. LBIST寄存器配置 3. LBIST触发时机 LBIST,全称Logic Built-in Self Test。 在TC3xx中,LBIST是一种硬件功能安全机制,目的是为了探测MCU内部逻辑电路的潜伏故障(latent faults)。 从使用者角度来看,只需…

NarratoAI —— 一站式AIGC自动化影视解说工具

随着人工智能技术的飞速发展,越来越多的工具开始涌现,旨在简化视频内容的创作过程。NarratoAI 就是一款基于先进AI大模型的自动化影视解说工具,它不仅能够自动生成视频脚本,还能完成视频剪辑、配音和字幕生成等一系列任务。本文将详细介绍 NarratoAI 的核心功能及其特色,帮…

网络安全售前入门06安全服务——基线检测服务方案

目录 1.服务概述 2.服务原则 3.服务内容 4.检查示例 ​​​​​​​5.服务输出 1.服务概述 安全基线检查可以帮助单位认清自身风险现状和漏洞隐患,使业务系统的风险维持在可控范围内。根本目的是保障业务系统的安全,是为了避免人为疏忽或错误,或使用默认的安全配置,给…

Native开发与逆向第四篇 - hook JNI函数GetStringUTFChars

修改测试demo 通过GetStringUTFChars 获取java层传入的字符串参数。 extern "C" JNIEXPORT jstring JNICALL Java_com_mycode_nativehello_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */,jstring s) {std::string hello env->GetStringUTFChars(s…

K8S 1.31 新功能: 跨核分发CPU

​在Kubernetes的最新版本1.31中,一个超酷的新功能,叫做CPUManager的静态策略,里面有个选项叫做distribute-cpus-across-cores。虽然这个功能现在还在测试阶段,也就是alpha版,而且默认是藏起来的,但它的目的…

腾讯提出一种新的针对风格化角色和逼真服装动画的生成3D运动转移方法,生成效果逼真!

来自腾讯XR视觉实验室的研究团队提出了一种创新的3D运动转移方法,专门针对风格化角色和逼真服装动画的生成。该方法能够将源动作准确地映射到目标角色上,同时考虑了角色身体的刚性变形和服装的局部物理动态变形。 与现有技术相比,这技术不仅…

docker Desktop报错 error pulling image configuration 处理

问题描述 在 docker 拉数据 出现以下错误 error pulling image configurarion: 这个问题 主要是 可能应该某些原因不能网络无法连上镜像 原因分析: 1。 2024年 5月以后 国内很多IP都 。。。懂的都懂,很多 VPN 也是。。。 懂的都懂&#x…

C++类和对象(5)——运算符重载(以日期类为例)

运算符重载的作用 假设我们此时实现了日期类的运算符重载,我们就可以 实现如图的很多功能,完成日期计算器的底层代码。 运算符重载关键字 运算符重载的关键字是operator。 比如你想重载‘’运算符,那么语法格式就是 返回类型 operator …

【Linux】系统管理(第六篇)

目录 1.ps命令详解:查看正在运行的进程 2.top命令详解:持续监听进程运行状态 3.pstree命令:查看进程树 4.lsof命令:列出进程调用或打开的文件信息 5.kill命令详解:终止进程 6.进程中常见得信号 7.Linux命令放入后…

跨境多账号登录如何防止IP、cookie和设备关联?

在当今数字化时代,拥有某个平台的多个账号是必要的,但如何防止这些账号之间产生关联,进而导致封号,却是一个需要谨慎对待的问题。 一、 多账号关联的主要因素 1. IP地址 2. Cookie和缓存 3. 设备指纹 二、如何防关联&#xff…