【ubuntu22.04】 搭建自己的镜像站 【harbor】【docker compose】【超详细】

news2024/10/7 15:21:56

文章目录

  • 什么是 harbor
    • 特点
    • 主要功能
  • 部署
    • 配置 dns
      • 初始化
      • 下载 dns
      • 编辑 named.conf.local
      • 编辑 named.conf.options
      • 配置正向解析
      • 配置反向解析
      • 解析
      • 扩展
    • 部署 harbor
      • 修改配置
      • 执行 prepare
      • 执行 install.sh
      • 查看镜像
      • 访问
  • 自制镜像
    • 创建镜像仓库
    • 上传镜像
    • 开始推送
    • 拉取镜像

什么是 harbor

Harbor是一个开源的企业级Docker Registry管理工具,它提供了一个安全、可靠、可扩展的平台,用于存储、管理和分发Docker镜像。Harbor可以帮助组织和团队更好地管理Docker镜像,并提高应用程序构建和部署的效率。

虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比Docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。

它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。

特点

  • 安全:Harbor提供了完整的认证和授权机制,支持LDAP、AD等集成方式,可以让用户更加安全地管理和使用Docker镜像。

  • 可靠:Harbor提供了多个镜像仓库,支持复制和高可用性,确保应用程序的部署和升级是平滑和无缝的。

  • 可扩展:Harbor是一个可扩展的平台,可以支持数千个并发构建和部署,从而满足高流量的应用程序部署需求。

  • 用户友好:Harbor提供了一个直观、易于使用的Web界面,让用户可以轻松地查找、上传和下载Docker镜像。

  • 灵活性:Harbor提供了一个可定制的平台,可以根据组织和团队的需求进行自定义配置。

Harbor的部署和使用非常简单,可以使用Docker Compose轻松地在本地环境中部署。Harbor还提供了API和CLI工具,可以方便地与其他DevOps工具集成。Harbor已被广泛采用,并被认为是企业级Docker Registry管理工具的首选之一。

在这里插入图片描述

Proxy: Harbor的registry、UI、token services等组件,都处在一个反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端服务上。

Registry: 负责存储Docker镜像,以及处理Docker push/pull请求。因为Harbor强制要求对镜像的访问做权限控制, 在每一次push/pull请求时,Registry会强制要求客户端从token service那里获得一个有效的token。

Core services: Harbor的核心功能,主要包括如下3个服务:

UI:图形界面

WebHook:及时获取registry上image状态变化情况,在registry上配置 webhook,把状态变化传递给UI模块。

Token服务:负责根据用户权限给每个docker push/pull命令签发token。Docker 客户端向Registry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。

Database:为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。

Job services: 主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。

Log collector: 负责收集其他组件的日志到一个地方。

主要功能

基于角色的访问控制

用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

基于镜像的复制策略

镜像可以在多个Registry实例中复制(可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能),尤其适合于负载均衡,高可用,混合云和多云的场景。

图形化用户界面

用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

支持 AD/LDAP

Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

镜像删除和垃圾回收

Harbor支持在Web删除镜像,回收无用的镜像,释放磁盘空间。image可以被删除并且回收image占用的空间。

审计管理

所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

RESTful API

RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。

部署简单

提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。 Harbor 的所有组件都在 Docker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。

注意: 由于 Harbor 是基于 Docker Registry V2 版本, docker 17.06.0-ce+ and docker-compose 1.18.0+

部署

配置 dns

我使用的是 192.168.142.158 当作镜像站的dns

初始化

下载 dns

apt install -y bind9
cd /etc/bind

编辑 named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";


zone "hq.com" {   //正向解析
        type master;
        file "/etc/bind/db.hq.com.conf";   //解析区域对应的配置文件
};
// 反向解析 .
zone "142.168.192.in-addr.arpa"  {
    type master;
    file "/etc/bind/db.hq.arpa.conf";
};

编辑 named.conf.options

options {
        directory "/var/cache/bind";
        listen-on port 53 { any;};
        allow-query {any;};
        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
             8.8.8.8;
             8.8.4.4;
        };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        listen-on-v6 { any; };
};

配置正向解析

cp db.0 db.hq.com.conf

编辑 db.hq.com.conf

;
; BIND reverse data file for broadcast zone
;
$TTL    604800
@       IN      SOA     hq.com. root.hq.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       192.168.142.158
hq      IN      A       192.168.142.158

配置反向解析

cp db.127 db.hq.arpa.conf

编辑 db.hq.arpa.conf

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     hq.com. root.hq.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
1.0.0   IN      PTR     localhost.
158     IN      PTR     hq.hq.com.

编辑 /etc/resolve.conf

nameserver 192.168.142.158

重启服务

systemctl restart bind9

解析

dig hq.hq.com
;; QUESTION SECTION:
;hq.hq.com.                     IN      A

;; ANSWER SECTION:
hq.hq.com.              604800  IN      A       192.168.142.158

看见这个信息就说明解析成功了,要想让别的主机可以解析到这个域名就需要在别的主机的 /etc/resolv.conf 中加入该 ip ,相同的也是要执行最上面两个命令,将那个服务永久关闭,这样下次重启服务的时候就不会被刷掉了

扩展

如果你手动编辑了 /etc/resolv.conf 并希望保持这些更改,重启 systemd-resolved 服务确实会覆盖你的更改。为了避免这种情况,你可以考虑以下方法:

你可以使用 resolvconf 程序更新 /etc/resolv.conf,该程序允许你将 DNS 设置持久化:这样确保了重启也会生效

apt update
apt install -y resolvconf
vim /etc/resolvconf/resolv.conf.d/head
nameserver 192.168.142.158

更新配置

resolvconf -u

部署 harbor

网络源:https://github.com/goharbor/harbor/releases/tag/v2.11.1
虚拟机没办法科学上网的就只能下载离线包了,能通过网络源下载的就是用下面这句话

wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz

创建文件夹

mkdir -p /docker/harbor

解压

tar zxvf harbor-offline-installer-v2.11.1.tgz -C /docker/harbor

解压出来就是一个 harbor 文件夹,进入此文件夹
编辑配置文件,先备份一份

cp harbor.yml.tmpl harbor.yml

文件注释有点多,看着不舒服的可以使用

sed -i '/^[[:space:]]*#/d;/^[[:space:]]*$/d' harbor.yml

不想改的也可以不执行这句话

修改配置

修改这几项就好了

vim harbor.yml

hostname: hq.hq.com
harbor_admin_password: 123456
database:
  password: 123456
data_volume: /docker/harbor/data

关于 http 和 https 我们选择哪一个,一般来说如果是自己用的话 http 完全够用了,大家可以自己选择是否注释 https 那几行(我使用的 http)
没有 /docker/harbor/data 就创建 mkdir /docker/harbor/data

ok 现在配置改好了我们执行两个脚本

./prepare # 为 harbor 启动的容器生成一些必要的文件(环境)
./install.sh # 以 pull 镜像并启动容器

执行 prepare

root@slave03:/docker/harbor/harbor# ./prepare
prepare base dir is set to /docker/harbor/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir

执行 install.sh

root@slave03:/docker/harbor/harbor# ./install.sh

[Step 0]: checking if docker is installed ...

Note: docker version: 27.3.1

[Step 1]: checking docker-compose is installed ...

Note: Docker Compose version v2.29.7

[Step 2]: loading Harbor images ...
Loaded image: goharbor/prepare:v2.11.1
Loaded image: goharbor/harbor-db:v2.11.1
Loaded image: goharbor/harbor-exporter:v2.11.1
Loaded image: goharbor/redis-photon:v2.11.1
Loaded image: goharbor/nginx-photon:v2.11.1
Loaded image: goharbor/harbor-portal:v2.11.1
Loaded image: goharbor/harbor-core:v2.11.1
Loaded image: goharbor/harbor-log:v2.11.1
Loaded image: goharbor/harbor-jobservice:v2.11.1
Loaded image: goharbor/harbor-registryctl:v2.11.1
Loaded image: goharbor/registry-photon:v2.11.1
Loaded image: goharbor/trivy-adapter-photon:v2.11.1


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
prepare base dir is set to /docker/harbor/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Clearing the configuration file: /config/registryctl/env
Clearing the configuration file: /config/registryctl/config.yml
Clearing the configuration file: /config/nginx/nginx.conf
Clearing the configuration file: /config/core/app.conf
Clearing the configuration file: /config/core/env
Clearing the configuration file: /config/log/rsyslog_docker.conf
Clearing the configuration file: /config/log/logrotate.conf
Clearing the configuration file: /config/registry/passwd
Clearing the configuration file: /config/registry/config.yml
Clearing the configuration file: /config/db/env
Clearing the configuration file: /config/portal/nginx.conf
Clearing the configuration file: /config/jobservice/env
Clearing the configuration file: /config/jobservice/config.yml
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
loaded secret from file: /data/secret/keys/secretkey
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir


Note: stopping existing Harbor instance ...
WARN[0000] /docker/harbor/harbor/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 8/8
 ✔ Container harbor-jobservice  Removed                                             0.0s
 ✔ Container registryctl        Removed                                             0.0s
 ✔ Container harbor-core        Removed                                             0.0s
 ✔ Container harbor-db          Removed                                             0.0s
 ✔ Container registry           Removed                                             0.0s
 ✔ Container redis              Removed                                             0.0s
 ✔ Container harbor-log         Removed                                             0.0s
 ✔ Network harbor_harbor        Removed                                             0.3s


[Step 5]: starting Harbor ...
WARN[0000] /docker/harbor/harbor/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                             0.1s
 ✔ Container harbor-log         Started                                             0.3s
 ✔ Container registry           Started                                             1.1s
 ✔ Container harbor-db          Started                                             1.2s
 ✔ Container registryctl        Started                                             1.2s
 ✔ Container redis              Started                                             1.1s
 ✔ Container harbor-portal      Started                                             1.2s
 ✔ Container harbor-core        Started                                             1.6s
 ✔ Container harbor-jobservice  Started                                             2.2s
 ✔ Container nginx              Started                                             2.3s
✔ ----Harbor has been installed and started successfully.----

查看镜像

root@slave03:/docker/harbor/harbor# docker ps -a
CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                             PORTS                                     NAMES
3f6bebc041d9   goharbor/nginx-photon:v2.11.1         "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:80->8080/tcp, [::]:80->8080/tcp   nginx
4d1b79f2a986   goharbor/harbor-jobservice:v2.11.1    "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                                             harbor-jobservice
6ac22f3160bc   goharbor/harbor-core:v2.11.1          "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                                             harbor-core
7370b925c089   goharbor/harbor-registryctl:v2.11.1   "/home/harbor/start.…"   About a minute ago   Up About a minute (healthy)                                             registryctl
9c0c69e17ceb   goharbor/harbor-portal:v2.11.1        "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)                                             harbor-portal
a85b5a75b0f7   goharbor/harbor-db:v2.11.1            "/docker-entrypoint.…"   About a minute ago   Up About a minute (healthy)                                             harbor-db
4acecfde1f4b   goharbor/redis-photon:v2.11.1         "redis-server /etc/r…"   About a minute ago   Up About a minute (healthy)                                             redis
efbf85333631   goharbor/registry-photon:v2.11.1      "/home/harbor/entryp…"   About a minute ago   Up About a minute (healthy)                                             registry
042812c8b703   goharbor/harbor-log:v2.11.1           "/bin/sh -c /usr/loc…"   About a minute ago   Up About a minute (healthy)   127.0.0.1:1514->10514/tcp                 harbor-log

访问

如果你的 window 能解析到你的dns那你也可以使用域名访问,当然使用 ip 也可以,上述的 dns 我创建出来只是为了别的主机以后使用镜像的时候使用的

账号密码分别是 admin 和 123456

在这里插入图片描述

自制镜像

创建镜像仓库

在这里插入图片描述

上传镜像

在这里插入图片描述

先登录

docker login http://hq.hq.com

此时我们遇到了一个报错:

Error response from daemon: Get "https://hq.hq.com/v2/": dial tcp 192.168.142.158:443: connect: connection refused

这个报错表示 docker 在使用 https 的形式去登录,但是我在上面配置的时候明明配置的是 http 的方式,此时的我也是有点懵逼的,看我操作:

编辑 daemon.json,没有这个文件的就创建

vim /etc/docker/daemon.json

{
    "insecure-registries" : ["hq.hq.com"]
}

重启 docker

systemctl daemon_reload
systemctl restart docker.service

查看 Insecure Registries

docker info
Insecure Registries:
  1.1.1.1:80
  hq.hq.com:5000
  127.0.0.0/8

看见域名就说明添加配置成功了
访问一下:

curl http://hq.hq.com/v2/

报错

{"errors":[{"code":"UNAUTHORIZED","message":"unauthorized: unauthorized"}]}

没有报错当我没说,报错了就再重启下docker看看

docker login hq.hq.com
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/#credential-stores

Login Succeeded

根据推送命令我们演示一下:

root@master:~/.docker# docker image ls
REPOSITORY                    TAG                            IMAGE ID       CREATED         SIZE
nacos/nacos-server            v2.2.0                         440657d52bc3   21 months ago   1.07GB

我这里推送的是 nacos
打标记

docker tag nacos/nacos-server:v2.2.0 hq.hq.com/hq/nacos-cluster:v2.2.0

此时再看

root@master:~/.docker# docker image ls
REPOSITORY                    TAG                            IMAGE ID       CREATED         SIZE
nacos/nacos-server            v2.2.0                         440657d52bc3   21 months ago   1.07GB
hq.hq.com/hq/nacos-cluster    v2.2.0                         440657d52bc3   21 months ago   1.07GB

开始推送

docker push hq.hq.com/hq/nacos-cluster:v2.2.0
The push refers to repository [hq.hq.com/hq/nacos-cluster]
5f70bf18a086: Pushed
0848096adb74: Pushed
4c6a137e16af: Pushed
bbe52c006636: Pushed
35a5e16bd0e7: Pushed
2268d9bf40bd: Pushed
70c7021c4e31: Pushed
7e7fc9f47535: Pushed
29d47ba0de5f: Pushed
174f56854903: Pushed
v2.2.0: digest: sha256:cda66d06b60b6cd28f597660fd90ed63f684c427bc0c878fd402c4b5e7c0bad8 size: 2415

在这里插入图片描述
此时此刻,我们就成功推送项目上去了

那我们其他的主机能否获取呢?

拉取镜像

我再开一台虚拟机实现:

前面的在 /etc/resolv.conf 下添加 158 主机的操作我就省略了

在添加了 dns 之后

docker login hq.hq.com
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/#credential-stores

Login Succeeded

登录之后就可以拉取镜像了

docker pull <harbor_host>/<project_name>/<image_name>:<tag>
docker pull hq.hq.com/hq/nacos-cluster:v2.2.0
v2.2.0: Pulling from hq/nacos-cluster
Digest: sha256:cda66d06b60b6cd28f597660fd90ed63f684c427bc0c878fd402c4b5e7c0bad8
Status: Downloaded newer image for hq.hq.com/hq/nacos-cluster:v2.2.0
hq.hq.com/hq/nacos-cluster:v2.2.0

查看是否拉取下来了

docker image ls

ok,也是成功拉取下来了

hq.hq.com/hq/nacos-cluster    v2.2.0                         440657d52bc3   21 months ago   1.07GB

在这里插入图片描述

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

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

相关文章

宏队列和微队列

1、javascript是一个单线程语言。 javascript 语言的目的&#xff08;待补充&#xff09; 2、主线程执行完成之后&#xff0c;再执行微队列&#xff0c;微队列执行完成后再执行宏队列 3、promise的构造函数传入的回调函数是同步执行 4、promise的then函数会直接加入微队列&…

Java 中的 LinkedHashMap

让我们从一个简单的 Java 代码片段开始&#xff0c;演示如何在 Java 中创建和使用 LinkedHashMap。 import java.util.LinkedHashMap; public class LinkedHashMapCreation { public static void main(String[] args) { // Create a LinkedHashMap of S…

【AI知识点】批归一化(Batch Normalization)

批归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09; 是一种用于加速神经网络训练并提高模型稳定性的方法&#xff0c;最早由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出。批归一化通过在每一层对神经网络中的激活值进行标准化&#xff0c;使得每一层的…

半路出家:如何转行成为软件开发者——之找到一份工作

一、前言 一个半路出家的软件开发者&#xff0c;尽管只有短短几年软件开发的相关经验&#xff0c;却可以凭借他在其他领域积累的丰厚经验&#xff0c;最终一举超过单纯拥有更多软件开发经验的同行【有时拥有不同的专业背景&#xff08;甚至是与软件完全不搭界的行业&#xff09…

SpringBoot赋能旅游管理:系统设计与实现

第三章 系统分析 3.1可行性分析 对所有的系统来说&#xff0c;都有可能会受到时间和空间上的制约。所以&#xff0c;我们在设计每一个项目的时候&#xff0c;必须对该系统实行可行性分析&#xff0c;这样不但能够降低项目的危害&#xff0c;还能改降低人力、物力和财力的损耗。…

弱网(不限于 Wi-Fi)环境的传输优化分析

参见 Wi-Fi弱网传输优化不成功有感 早在几年前还做传输优化时&#xff0c;我就非常不赞同在弱网环境激进传输的优化策略&#xff0c;我一直觉得这是在劣化传输&#xff0c;这观点一直影响着我&#xff0c;我也屡次因为这个与经理发生冲突。这观点如下表述&#xff1a; 弱网环…

【SpringSecurity】基本流程

【中文文档: Spring Security 中文文档 :: Spring Security Reference】 【英文文档&#xff1a;Spring Security】 以下内容只是记录springsecurity最简单的一种验证流程&#xff0c;所有配置基本都是默认的配置。 引入依赖 <dependency><groupId>org.springf…

GPU Puzzles讲解(一)

GPU-Puzzles项目可以让你学习到GPU编程和cuda核心并行编程的概念&#xff0c;通过一个个小问题让你理解cuda的编程和调用&#xff0c;创建共享显存空间&#xff0c;实现卷积和矩阵乘法等&#xff0c;通过每个小问题之后还会奖励一个狗狗小视频&#x1f601; 下面是项目的仓库&…

大模型面试宝典:问题全集及权威解答

导读 自ChatGPT开启大模型时代以来&#xff0c;大模型正迎来飞速发展&#xff0c;现在从事大模型开发相关工作可谓是处在时代的风口。那么大模型面试需要哪些技能和技巧呢&#xff0c;本文详细整理了全套的面试问题及答案&#xff0c;希望对大家有所帮助&#xff01; 目录 [x…

脉冲神经网络(SNN)论文阅读(六)-----ECCV-2024 脉冲驱动的SNN目标检测框架:SpikeYOLO

原文链接&#xff1a;CSDN-脉冲神经网络&#xff08;SNN&#xff09;论文阅读&#xff08;六&#xff09;-----ECCV-2024 脉冲驱动的SNN目标检测框架&#xff1a;SpikeYOLO Integer-Valued Training and Spike-Driven Inference Spiking Neural Network for High-performance …

MySQL数据库专栏(二)SQL语句基础操作

目录 数据库操作 创建数据库 查看数据库 选择数据库 删除数据库 数据表操作 数据表数据类型 数据表列约束 数据表索引 创建表 查看表 查看表结构 删除表 数据表的增删改操作 …

自由学习记录

约束的泛型通配符? Java中的泛型 xiaomi和byd都继承了car&#xff0c;但是只是这两个类是car的子类而已&#xff0c;而arraylist<xiaomi> ,arraylist<byd> 两个没有半毛钱继承关系 所以传入的参数整体&#xff0c;是car的list变形&#xff0c;里面的确都能存car…

YOLO11改进 | 卷积模块 | 添加选择性内核SKConv【附完整代码一键运行】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 在标准卷积神经网络 (CNN) 中&#xff0…

单调栈day54|42. 接雨水(高频面试题)、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比

单调栈day54|42. 接雨水&#xff08;高频面试题&#xff09;、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比 42. 接雨水84. 柱状图中最大的矩形两道题思维导图的汇总与对比 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱…

2025,企业管理平台的理想模型V0.1

1.前言 近期出于综合考虑&#xff0c;准备休息一段时间......... 在这段时间里&#xff0c;准备重新梳理下企业管理平台应该具备的能力.并准备使用开源项目来一次组合式组装&#xff0c;最终形成一个初步可行的运行平台。 2.企业管理平台的主要组成 企业管理平台不是独立存…

《python语言程序设计》2018版第8章20题使用Rational类编写一个程序(上)-修改一下8-4Rational类我认为的错误

首先抄一下Rational类,可以安静的抄一遍 一、抄写中的问号 各种报错的截图1各种报错的截图2各种报错的截图3各种报错的截图4添加一个str我将n和d修改为self 书中214-215页间程序清单8-4的代码如下: class Rational:def __init__(self, numerator1, denominator0):divisor gcd(…

产品经理内容分享(二):AI产品经理的入门路线图

引言 想象这样一个场景&#xff1a;早晨的阳光穿透窗帘&#xff0c;投射在新一代智能机器人上&#xff0c;它正静静等待着你的第一个命令开始全新的一天。这样的场景听起来像是科幻小说里的情节&#xff0c;但实际上&#xff0c;这正是AI产品经理们工作的成果。如果你对这样的…

使用axios封装AJAX

一 、Http 请求报文 包括了三部分: 求情行、请求头,请求体。 1、请求行: 是HTTP请求的第一行,包含了请求方法、请求目标和HTTP协议版本。常用的请求方法有GET、POST、PUT、DELETE等,用于指定客户端希望服务器执行的操作。请求目标是指请求的资源路径,可以是一个具体的…

国外电商系统开发-运维系统资产属性-命令执行功能

当前开发中&#xff0c;还不支持点击拓扑图标打开资产的功能&#xff0c;后期有时间补全对应的开发。 该功能如同Xshell、SecureCRT、Putty一样&#xff0c;可以批量的发送系统命令&#xff0c;让Linux服务器执行。 默认情况下&#xff0c;系统已经选择全部主机&#xff0c;如果…

番外篇 | CRAS-YOLO:基于卫星图像的多类别船舶检测和分类

前言:Hello大家好,我是小哥谈。目前,基于卫星图像的多类别船舶检测和分类由于在军事和民用领域的重要应用而备受关注。针对传统检测效果不佳的情形,我们进一步提出了一种新的多类船检测,称为CRAS-YOLO,它由卷积块注意力模块(CBAM)、感受野块(RFB)和基于YOLOv5s的自适…