云计算实训39——Harbor仓库的使用、Docker-compose的编排、YAML文件

news2024/9/30 9:30:06

一、Harbor部署

1.验证python版本

[root@docker2 ~]#python --version

2.安装pip

[root@docker2 ~]# yum -y install python2-pip

#由于版本过低,需要对其进行一个升级

#更新pip

[root@docker2 ~]#pip install --upgrade pip

3.指定版本号

[root@docker2 ~]# pip install --upgrade pip==20.3 -i https://mirrors.aliyun.com/pypi/simple

#查看pip版本

[root@docker2 ~]# pip list

Package Version

pip 20.3

4.安装docker-compose

[root@docker2 ~]# pip install docker-compose --ignore-installed requests  -i https://mirrors.aliyun.com/pypi/simple

#查看docker-compose版本

[root@docker2 ~]# pip list

Package               Version

docker-compose        1.26.2

5.安装docker

#docker.sh脚本的具体内容如下:

#---------------------------------------------------------------------------------------
# 创建一个配置文件,确保在系统启动时加载 overlay 和 br_netfilter 内核模块  
cat << EOF | tee /etc/modules-load.d/k8s.conf   
overlay  
br_netfilter  
EOF  

# 立即加载 overlay 和 br_netfilter 内核模块  
modprobe overlay  
modprobe br_netfilter  

# 创建一个 sysctl 配置文件,配置 Kubernetes 网络设置  
cat << EOF | tee /etc/sysctl.d/k8s.conf  
net.bridge.bridge-nf-call-iptables = 1     # 允许对桥接接口的iptables过滤  
net.bridge.bridge-nf-call-ip6tables = 1    # 允许对桥接接口的ip6tables过滤  
net.ipv4.ip_forward = 1                    # 启用 IPv4 转发,以支持 pod 网络  
EOF  

# 重新加载 sysctl 配置,应用新的网络设置  
sysctl --system  

# 安装 yum-utils、设备映射持久数据和 lvm2,这些是后续安装 Docker 所需的工具  
yum install -y yum-utils device-mapper-persistent-data lvm2  

# 添加阿里云 Docker 仓库,以便于通过 yum 安装 Docker  
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

# 安装 Docker 及相关组件,包括 Docker CLI、containerd、Buildx 和 Compose 插件  
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

#---------------------------------------------------------------------------------------


#拖拽安装docker的脚本

[root@docker2 ~]# rz -E
rz waiting to receive.

#查看

[root@docker2 ~]# ls
anaconda-ks.cfg  docker.sh

#让docker.sh脚本生效

[root@docker2 ~]# source docker.sh 

#上传daemon.json文件

[root@docker2 harbor]# scp root@192.168.1.32:/etc/docker/daemon.json /etc/docker/

#编辑daemon.json文件

[root@docker2 harbor]# 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.1.24"
    ]

}

#编辑docker.service文件

[root@docker2 harbor]# vim /usr/lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd

#启动docker

[root@docker2 harbor]# systemctl start docker
Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

#重新加载daemon

[root@docker2 harbor]# systemctl daemon-reload

#再次启动docker

[root@docker2 harbor]# systemctl start docker

6.安装harbor

#下载harbor包
[root@docker2 ~]# rz -E
rz waiting to receive.
#查看
[root@docker2 ~]# ls
anaconda-ks.cfg  docker.sh  harbor-offline-installer-v2.11.1.tgz

#查看docker版本
[root@docker2 ~]# docker --version

Docker version 26.1.4, build 5650f9b

#解压harbor
[root@docker2 ~]# tar -zxvf harbor-offline-installer-v2.11.1.tgz 

#查看

[root@docker2 ~]# ls

anaconda-ks.cfg  docker.sh  harbor  harbor-offline-installer-v2.11.1.tgz

#切入harbor目录

[root@docker2 ~]# cd harbor/

#查看

[root@docker2 harbor]# ls

common.sh  harbor.v2.11.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

7.复制harbor.yml文件

[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml

8.编辑harbor.yml文件

[root@docker2 harbor]# vim harbor.yml

9.查看端口状态

[root@docker2 harbor]# netstat -lnput | grep 80[root@docker2 harbor]# netstat -lnput | grep 5000

10.执行

#执行prepare

[root@docker2 harbor]# ./prepare

#执行install.sh

[root@docker2 harbor]# ./install.sh

11.上传镜像

[root@docker2 harbor]# docker pull centos

12.打标签

[root@docker2 harbor]# docker tag centos:latest 192.168.1.24/library/ddcentos:v0

13.下载镜像

[root@docker2 harbor]# docker push 192.168.1.24/library/ddcentos:v0

14.登录docker镜像仓库

[root@docker2 harbor]# docker login http://192.168.1.24
Username: admin
Password: 
Error response from daemon: Get "http://192.168.1.24/v2/": dial tcp 192.168.1.24:80: connect: connection refused

15.浏览器访问:

16.开启容器

#查看所有容器

[root@docker2 harbor]# docker ps --all
CONTAINER ID   IMAGE                                 COMMAND                   CREATED          STATUS                            PORTS                                   NAMES
99c3f62458f4   goharbor/nginx-photon:v2.11.1         "nginx -g 'daemon of…"   32 minutes ago   Up 3 seconds (health: starting)   0.0.0.0:80->8080/tcp, :::80->8080/tcp   nginx
dd3ef1a8cdfc   goharbor/harbor-jobservice:v2.11.1    "/harbor/entrypoint.…"   32 minutes ago   Exited (128) 3 minutes ago                                                harbor-jobservice
8999a3b7136d   goharbor/harbor-core:v2.11.1          "/harbor/entrypoint.…"   32 minutes ago   Exited (128) 2 minutes ago                                                harbor-core
444ce3ab8f55   goharbor/harbor-portal:v2.11.1        "nginx -g 'daemon of…"   32 minutes ago   Exited (128) 2 minutes ago                                                harbor-portal
8a8cd273a779   goharbor/registry-photon:v2.11.1      "/home/harbor/entryp…"   32 minutes ago   Exited (128) 2 minutes ago                                                registry
dbf40ab53516   goharbor/redis-photon:v2.11.1         "redis-server /etc/r…"   32 minutes ago   Up 2 minutes (healthy)                                                    redis
59f6ebcbaa18   goharbor/harbor-registryctl:v2.11.1   "/home/harbor/start.…"   32 minutes ago   Exited (128) 2 minutes ago                                                registryctl
a7b8abe38923   goharbor/harbor-db:v2.11.1            "/docker-entrypoint.…"   32 minutes ago   Exited (128) 2 minutes ago                                                harbor-db
9cc010ff2807   goharbor/harbor-log:v2.11.1           "/bin/sh -c /usr/loc…"   32 minutes ago   Up 2 minutes (healthy)            127.0.0.1:1514->10514/tcp               harbor-log

#开启关闭的容器

[root@docker2 harbor]# docker start harbor-jobservice harbor-core harbor-portal registry registryctl harbor-db
harbor-jobservice
harbor-core
harbor-portal
registry
registryctl
harbor-db

17.访问验证

#再次登录docker镜像仓库

[root@docker2 harbor]# docker login http://192.168.1.24
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

#再次下载镜像

[root@docker2 harbor]# docker push 192.168.1.24/library/ddcentos:v0 
The push refers to repository [192.168.1.24/library/ddcentos]
74ddd0ec08fa: Pushed 
v0: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529

#浏览器访问验证:

能够看到我们所创建的镜像---ddcentos

18.共享镜像

切到docker机器:

#启动docker

[root@docker ~]# systemctl start docker

#编辑daemon.json文件

[root@docker ~]# vim /etc/docker/daemon.json

#重新启动docker

[root@docker ~]# systemctl restart docker

#到访问页面复制拉取命令

#使用复制的连接,添加同时共享的镜像

[root@docker ~]# docker pull 192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc: Pulling from library/ddcentos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc

#查看镜像

#可以看到被共享的镜像

[root@docker ~]# docker images
REPOSITORY                       TAG       IMAGE ID       CREATED         SIZE
centos                           httpd0    db3cae3b5002   2 days ago      280MB
192.168.1.32:5000/centos_nginx   v0        1c2a0901c77a   3 days ago      368MB
centos                           nginx     1c2a0901c77a   3 days ago      368MB
centos                           httpd     e9a1ee725b43   6 days ago      311MB
centos                           yum       82ca12d9b058   6 days ago      261MB
registry                         latest    cfb4d9904335   11 months ago   25.4MB
centos                           latest    5d0da3dc9764   2 years ago     231MB
192.168.1.24/library/ddcentos    <none>    5d0da3dc9764   2 years ago     231MB

二、部署Docker-compose

1.Docker-compose 核⼼概念

docker compose 是 docker 官⽅的开源项⽬,负责实现对 docker 容器集群的快速编排;

docker compose可以管理多个 docker 容器组成的应⽤;

需要定义⼀个 YAML 格式的配置⽂件 docker-compose.yml,写 好多个容器之间的调⽤关系;

Docker-compose 将管理的容器分为三层:⼯程(project)、 服务(service)、容器(container)

⼯程:

运⾏ compose 的⽬录下所有的⽂件,包括 dockercompose.yml、extends ⽂件、环境变量⽂件等组成⼀个⼯程, 若⽆特殊指定⼯程,⼯程名即为当前⽬录名。⼯程的默认配置⽂ 件为 docker-compose.yml,可通过环境变量 COMPOSE_FILE 或 -f 参数⾃定义配置⽂件,其定义了多个有依赖关系的服务及 每个服务运⾏的容器。

服务:

⼀个⼯程中包含多个服务,每个服务中定义了容器运⾏的镜像、参数、依赖等,⼀个服务中可包括多个容器实例。

容器:

被 docker-compose 管理或部署的容器集群,调⽤ docker 服务提供的 API 来对容器进⾏管理,只要操作的平台⽀ 持 docker API,即可在其上进⾏ compose 的容器编排。

2.YAML⽂件的格式和语法

1、YAML ⽂件格式

yaml 是⼀种标记语⾔很直观的数据序列化格式,可读性很⾼。 类似于 xml 描述性语⾔,语法⽐xml简单的很多。

yaml 数据结构通过缩进进⾏表示,连续的项⽬通过减号来表 示,键值对⽤冒号分隔,数组⽤中括号括起来,hash

⽤花括号括起来。

yaml ⽂件的基本格式由⼀系列键值对构成。每个键值对都⽤冒 号“: ”分隔

在 yaml 中,键和值之间只需要⼀个空格,这是为了保证 yaml ⽂件的可读性和⼀致性

key: value

对于字符串值,可以使⽤单引号或者双信号将其括起来,这样可以避免出现特殊字符或空格等问题

name: 'Meng Mr'

age: "34"

如果值包含特殊字符(如冒号或短横线),则应该使⽤引号将其括起来

description: "This is a YAML file: good for configuation files."

2、YAML 注意事项

(1)不⽀持制表符 tab 键缩进,需要使⽤空格缩进。

(2)通常开头缩进 2 个空格。

(3)字符后缩进 1 个空格,如:冒号,逗号,横杠。

(4)⽤ # 表示注释。

(5)如果包含特殊字符⽤单引号引起来。

(6)布尔值(true、false、yes、no、on、off)必须使⽤“”引号括起 来,这样分析器会将它们解释为字符串。

3、列表和数组

在yaml中,可以使⽤“-”符号表示⼀个列表和数组

4、嵌套数据结构

yaml⽀持嵌套数据结构,可以⽤缩进来表示不同层级之间的关系, 可使⽤ # 号表示注释信息。

3.docker compose 命令选项

1.build:重新构建服务

2.ps:列出容器

3.up:启动所有的docker-compose服务

4.up -d:启动所有docker-compose服务并在后台运行

5.exec:进入容器实例内部

6.:指定一个服务器启动数量

7.top:显示容器进程

8.logs:查看容器输出日志

9.down:停止并删除容器、网络、卷、镜像

10.stop:停止服务

11.start:启动服务

12.restart:重启服务

13.config:检查配置

14.config -q:检查配置,有问题才有输出

15.--version:查看版本

4.YAML⽂件内常⽤指令字段

(1)version

指定了Docker compose编排⽂件的版本

Docker Compose ⽬前有三个版本,分别为 Version1、Version2和Version3。

Version1 是较早的版本,它将来会被弃⽤。

Version2 是⽬前的稳定版本,⽀持更多的指令。

Version3 在功能上与 Version2 类似,但进⾏了⼀些改进和 扩展,例如增加了对 Docker BuildKit

的⽀持,可以加速构 建过程。

(2)services

指定了在 docker compose 编排中要运⾏的服务,每个服务都有⼀ 个名称,并指定要使⽤的镜像

和容器的配置选项。

(3)image

指定要使⽤的 docker 镜像。

(4)build

允许在 docker compose 编排中指定 dockerfile 的位置。

(5)environment

指定了要设置的环境变量。

(6)volumes

挂载宿主机路径或命名卷

(7)ports

指定了要宿主机映射到容器的端⼝,端⼝不能低于 60(宿主机端 ⼝:容器端⼝),如果选择的端

⼝号低于 60,可能会与系统保留的 知名端⼝冲突。

(8)expose

⽤于在 docker 容器内部暴露端⼝的选项。

(9)networks

加⼊⽹络,引⽤顶级 networks 条⽬.

(10)hostname

设定容器主机名

(11)command

指定容器启动时要运⾏的命令,覆盖构建时的默认命令

5.安装Docker-compose

1.下载pip

[root@docker3 ~]# yum -y install python2-pip

2.升级pip到最新版本

[root@docker3 ~]# pip install --upgrade pip

3.指定版本号

[root@docker3 ~]# pip install --upgrade pip==20.3 -i Simple Index

4.使用pip安装docker-compose

[root@docker3 ~]# pip install docker-compose -i Simple Index

rz waiting to receive.

5.安装docker

[root@docker3 ~]# lsanaconda-ks.cfg docker.sh

#让docker.sh脚本文件生效

[root@docker3 ~]# source docker.sh

6.远程复制daemon.json文件到本地目录

[root@docker3 test]# scp root@192.168.1.32:/etc/docker/daemon.json /etc/docker/

7.编辑配置文件

#编辑daemon.json 文件

[root@docker3 test]# 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.1.35"
    ]

}

#编辑docker.service文件

[root@docker3 test]# vim /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/dockerd

8.加载deamon

[root@docker3 test]# systemctl daemon-reload

9.启动docker

[root@docker3 test]# systemctl start docker

10.创建目录

#创建test目录

[root@docker3 ~]# mkdir test

#切入test目录

[root@docker3 ~]# cd test/[root@docker3 test]# ls

#创建html目录

[root@docker3 test]# mkdir html

#写入内容

[root@docker3 test]# echo "我是被编排的nginx" > ./html/index.html

#访问验证

#使用tree命令查看

[root@docker3 test]# tree
.
└── html 
└── index.html

1 directory, 1 file

11.创建yml文件

[root@docker3 test]# vim docker-compose.yml

version: "3"
services:
  nginx:
    container_name: c1
    image: "nginx:latest"
    ports:
    - "80:80"
    volumes:
    - /root/test/html/:/usr/share/nginx/html/

12.启动docker-compose容器集群

[root@docker3 test]# docker compose up -d
WARN[0000] /root/test/docker-compose.yml: `version` is obsolete 
[+] Running 8/8
 ✔ nginx Pulled                                                                                                  89.7s 
   ✔ e4fff0779e6d Pull complete                                                                                  26.1s 
   ✔ 2a0cb278fd9f Pull complete                                                                                  31.0s 
   ✔ 7045d6c32ae2 Pull complete                                                                                  31.0s 
   ✔ 03de31afb035 Pull complete                                                                                  31.0s 
   ✔ 0f17be8dcff2 Pull complete                                                                                  31.0s 
   ✔ 14b7e5e8f394 Pull complete                                                                                  31.0s 
   ✔ 23fa5a7b99a6 Pull complete                                                                                  31.1s 
[+] Running 2/2
 ✔ Network test_default  Created                                                                                  0.1s 
 ✔ Container c1          Started                                                                                  0.9s 

13.查看及验证

#查看镜像

[root@docker3 test]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 5ef79149e0ec 2 weeks ago 188MB

#查看容器

[root@docker3 test]# docker ps --allCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESebfbdb329f7a nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp c1

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

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

相关文章

geodatatool(地图资源工具)下载高德数据及数据共享

利用geodatatool&#xff08;地图资源工具&#xff09;3.8&#xff08;新&#xff09;下载高德POI数据&#xff1a; 选择类型如下&#xff1a; 数据效果如下&#xff0c;由于用的免费的key&#xff0c;所以可能数据下载还不完全&#xff0c;但已经很多了&#xff1a; 下载数据…

小模型大智慧!港大重磅开源EasyRec,推荐系统进入语言模型时代

在当今的信息时代&#xff0c;我们每天都被海量信息所包围&#xff0c;不断面临各种选择。从网上购物、音乐播放到视频推荐&#xff0c;推荐系统已经成为我们生活中不可或缺的一部分。那么&#xff0c;这些系统是如何运作的&#xff1f;它们又是如何在信息的洪流中帮助我们找到…

《使用 LangChain 进行大模型应用开发》学习笔记(一)

前言 本文是 Harrison Chase &#xff08;LangChain 创建者&#xff09;和吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《LangChain for LLM Application Development》&#xff08;使用 LangChain 进行大模型应用开发&#xff09;的学习笔记。由于原课程为全英文视频课…

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序&#xff08;KNN分类器&#xff09; 文章目录 一、基本原理原理流程举个例子总结 二、实验结果三、核心代码四、代码获取五、总结 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序&#x…

Android 优化之 查找so 文件的来源

序言 有时候我们需要优化apk的包体积大小。比如下面这样的。一个so文件大小有10M。但是我们并不知道so文件是那个库引入的。所以需要研究一下。 方法 在参考网上现有方法&#xff0c;加上自己测试以后。有了下面的成功。而且在gradle 8.4.2都可以成功。相信大家都可以成功。…

MathType常见问题汇总

文章目录 MathType常见问题汇总一、如何将MathType内嵌到WPS工具栏中&#xff1f;二、在word中&#xff0c;如何批量修改所有MathType公式的字体以及大小格式&#xff1f;三、如何解决插入MathType公式后的行间距发生改变&#xff1f;参考 MathType常见问题汇总 一、如何将Mat…

CEASC:基于全局上下文增强的自适应稀疏卷积网络在无人机图像上的快速目标检测

Adaptive Sparse Convolutional Networks with Global Context Enhancement for Faster Object Detection on Drone Images 摘要 提出了一种基于稀疏卷积的探测头优化方法&#xff0c;该方法在精度和效率之间取得了较好的平衡。然而&#xff0c;该算法对微小物体的上下文信息融…

C/C++ JSON ORM

structs #include "json_struct.h" #include <vector>JS_ENUM(Error, None, InvalidRange, IllegalParam, Nullptr, OverLimitLen) JS_ENUM_DECLARE_STRING_PARSER(Error)// 搜索匹配区域 struct RangeContent {size_t start;size_t end;std::strin…

基于协同过滤与情感分析的酒店评论分析与景区推荐系统实现

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍系统界面推荐模块主题分类文本可视化每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 近年来&#xff0c;旅游行业风生水起&#…

#单片机高级 硬件部分笔记

课程内容 硬件基础知识PCB基础知识嘉立创EDA&#xff08;专业版&#xff09;软件的安装及使用PCB设计PCB设计规则&#xff08;原理图、布局、布线&#xff09;项目&#xff08;暂定&#xff09; 1、硬件基础 初级硬件工程师 熟练掌握数字电路、模拟电路知识&#xff0c;熟悉常用…

unity的问题记录(信息管理)

闭包 捕获引用&#xff1a;当你在委托或 lambda 表达式中使用外部变量时&#xff0c;它们捕获的是这个变量的引用&#xff0c;而不是当时的值。变量的生命周期&#xff1a;捕获的变量的生命周期不受限于它的作用域&#xff0c;委托可以在变量的作用域结束后继续访问它。 为了…

今晚8点直播预告——模拟RCT,真实世界研究新方法,快来了解一下吧

这是讲座预告&#xff0c;我们来向大家介绍一下真实世界研究的新方法—模拟RCT&#xff01; 郑老师喜欢交流&#xff0c;于是在2024年&#xff0c;决定邀请各位一起参加统计学沙龙&#xff0c;基本每周一期&#xff0c;欢迎各位朋友来交流、讲课。 本期沙龙&#xff0c;在8月29…

【ubuntu笔记】拉取docker镜像

拉取docker镜像 更换国内源 修改配置文件 sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://cc…

【Java】Maven多环境切换实战(实操图解)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 Maven多环境配置学习4.2 切换环境4.2.1 先打包4.2.2 之后可以切换 五、总结…

聊聊Netty异常传播链与最佳实践

写在文章开头 Netty通过责任链的思想解耦了各个业务的处理逻辑,是的用户可以非常方便的根据不同的生命周期进行相应的业务处理。而本文将针对Netty中的异常和异常传播过程进行分析,并给出最佳的处理技巧,希望对你有帮助。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的…

Electron 项目实战 03: 实现一个截图功能

实现效果 实现思路 创建两个window&#xff0c;一个叫mainWindow&#xff0c;一个叫cutWindowmainWindow&#xff1a;主界面用来展示截图结果cutWindow&#xff1a;截图窗口&#xff0c;加载截图页面和截图交互逻辑mainWindow 页面点击截图&#xff0c;让cutWIndow 来实现具体…

WEB应用服务器TOMCAT知识点

TOMCAT介绍 Tomcat是一个开源的Java Web应用服务器&#xff0c;主要用于运行Java编写的网站。 Apache Tomcat是由Apache Software Foundation&#xff08;ASF&#xff09;开发的一个开源Java Web应用服务器&#xff0c;最初由Sun Microsystems捐赠给Apache软件基金会&#xf…

数据结构(Java实现):栈和队列相关练习题

文章目录 1. 题目链接2. 题目解析2.1 括号匹配2.2 逆波兰表达式求值2.3 出栈入栈次序匹配2.4 最小栈2.5 环形数组队列2.6 用队列实现栈2.7 用栈实现队列 1. 题目链接 括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈设计循环队列用队列实现栈用栈实现队列 2. 题目解析 2.1 …

基于RK3568平台移植ffmpeg3.4.5及ffmpeg验证

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、移植流程3.1 编译x2643.2 编译mpp3.3 编译ffmpeg四、ffmpeg验证4.1 ffmpeg配置说明4.2 ffmpeg推流/拉流使用说明4.2.1 使用http方式推流/拉流4.2.1.1 先执行ffmpeg服务4.2.1.2 再执行ffmpeg进行推流4.2.1.3 最后执行vlc进…

等保测评中的数据安全保护:重点与挑战

在信息安全等级保护&#xff08;等保&#xff09;测评中&#xff0c;数据安全保护是核心关注点之一&#xff0c;它不仅关系到企业的合规性&#xff0c;还直接影响到企业的运营安全和用户信任。本文将深入探讨等保测评中数据安全保护的重点与挑战&#xff0c;为企业提供有效的应…