Docker-compose与Docker私有仓库

docker-compose和docker仓库 Docker-Harbor是一个开源的企业级Docker Registry管理工具,由VMware公司开发并捐赠给CNCF(云原生计算基金会)。它扩展了Docker Distribution,增加了企业级功能,如安全、审计和多租户支持,旨在帮助企业用户更安全地存储和管理Docker镜像,并简化镜像的部署流程。 阅读详情

Docker 私有仓库部署和管理

技能目标:

理解Docker 网络原理

  • 掌握Compose 的安装及YAML 文件详解
  • 掌握Docker 服务自动注册和更新
  • 理解Harbor 工作原理
  • 掌握Harbor 安装部署
  • 掌握Harbor 日常操作管理

案例一 概述

在这里插入图片描述


什么是 Docker Compose

Docker Compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具。使用Docker Compose 时,只需要在一个配置文件中定义多个 Docker 容器,然后使用一条命令启动这些容器。Docker Compose 会通过解析容器间的依赖关系按先后顺序启动所定义的容器。

在这里插入图片描述


什么是 Consul

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案不同,与 Airbnb 的 SmartStack 等相比,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(例如 ZooKeeper 等),使用起来也较为简单。Consul 是基于 Golang 语言开发实现的,因此具有天然可移植性(支持 Linux、windows 和 Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。
在这里插入图片描述


案例一:使用 docker-compose 搭建 consul 集群环境

案例实验环境和需求:

在这里插入图片描述


安装Docker Compose

因为Docker Compose依赖Docker 所以安装之前要先安装Docker

安装Docker

这里我直接用curl的安装方式

[root@localhost ~]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
[root@localhost ~]# docker version
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

安装Docker Compose

方法1:
上传docker-compose文件到服务器中
在这里插入图片描述
[root@localhost ~]# mv docker-compose /usr/local/bin/

在这里插入图片描述
方法2:

直接使用curl的安装方法

在这里插入图片描述
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

[root@localhost ~]# docker-compose --version


案例一 实施:

在这里插入图片描述

Docker 网络通信

Docker 提供了映射容器端口到宿主机和容器互联两种机制来为容器提供网络服务。

1.端口映射
在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。端口映射机制将容器内的服务提供给外部网络访问,实质上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可访问容器内的服务。

在这里插入图片描述
这个是提供给外部网络访问容器中的服务的,在Docker基本管理的文章中中已经演示过了

2.容器互联
容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

如果不建立容器互联的,容器和容器之前只能用IP来进行通信,但容器如果重启后它的IP也会更新,这样就非常麻烦了

在运行 docker run 命令时使用–link 选项实现容器之间的互联通信。

格式:

–link [源容器名]:别名

其中 name 是要连接的容器名称,alias 是该连接的别名。

注意:容器互联是通过容器的名称来执行的,–name 选项可以给容器创建一个友好的名称,这个名称是唯一的。

  • 首先下载基础镜像
    [root@localhost ~]# docker pull centos
    在这里插入图片描述

  • 创建启动源容器centos1
    使用 docker run 命令建立源容器 ,使用–name 指定容器名称为centos1。
    [root@localhost ~]# docker run -itd --name centos1 -P centos:latest

  • 创建接收容器
    使用 docker run 命令建立接收容器,–name 指定名称为centos2,–link 指定连接容器以实现容器互联。
    [root@localhost ~]# docker run -itd --name centos2 --link centos1:centos1 -P centos:latest

  • 测试容器互联

最简单的检测方法是进入容器,使用 ping 命令查看容器是否相互连通。
注意:我们ping的是源容器的别名
在这里插入图片描述
此时,可以看到容器 centos2 与容器 centos1 已经建立互联关系。这时 Docker 在两个互联的容器之间创建了一条安全隧道,而且不用映射它们的端口到宿主机上,从而避免暴露端口到外部网络。

在这里插入图片描述这时容器中的host文件中也添加了一条为 centos1 的解析

注意:如果创建源容器时没有用 --link 指定接受容器时,源容器是无法和接收容器通信的

注意:若 httpd 镜像基于 Debian 系统制作,则不存在 ping 命令,需执行如下命令进行安装。

apt-get update && apt install iputils-ping


Docker Compose 容器编排

Compose 是 Docker 的服务编排工具,主要用来构建基于 Docker 的复杂应用 Compose通过一个配置文件管理多个 Docker 容器,非常适合组合使用多个容器进行开发的场景。

文件格式及编写注意事项

YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。类似于 XML数据描述语言,语法比 XML 简单的很多。YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [] 括起来, hash 用花括号 {} 括起来。

使用 YAML 时需要注意下面事项:
(1)不支持制表符 tab 键缩进,需要使用空格缩进。
(2)通常开头缩进两个空格。
(3)字符后缩进一个空格,如冒号、逗号、横杆。
(4)用#号注释。
(5)如果包含特殊字符,要使用单引号(’’)引起来。
(6)布尔值(true、 false、 yes、 no、 on、 off)必须用引号("")括起来,这样分析器会将它们解释为字符串。
在这里插入图片描述
配置常用字段描述
在这里插入图片描述
Docker Compose 常用命令
在这里插入图片描述

Docker Compose 文件结构
在这里插入图片描述


Docker-compose部署示例

其实就是一次创建启动多个容器

[root@localhost ~]# mkdir compose
[root@localhost ~]# cd compose/
[root@localhost compose]# vim docker-compose.yml
在这里插入图片描述

[root@localhost compose]# mkdir nginx
[root@localhost compose]# cd nginx/
[root@localhost nginx]# vim Dockerfile
在这里插入图片描述
[root@localhost compose]# mkdir mysql
[root@localhost compose]# cd mysql/
[root@localhost mysql]# vim Dockerfile
在这里插入图片描述
[root@localhost compose]# vim mysql.env
这个是登录mysql的账号密码文件
在这里插入图片描述
查看的是compose的目录结构
在这里插入图片描述

启动 docker-compose 构建启动服务

  • 前台运行
    [root@localhost compose]# docker-compose up
  • 后台运行
    [root@localhost compose]# docker-compose docker-compose.yml up -d
    当然也可不用跟docker-compose.yml文件直接 -d 启动

可以再开一个终端使用下面的命令动态一直查看
[root@consul compose]# watch docker-compose ps
在这里插入图片描述
查看生成的镜像和容器
在这里插入图片描述


Docker-compose分离部署lnmp

其实就是创建多个容器服务的同时又以让容器中的服务和其他容器中的服务之间相互通信

因为之前已经部署了mysql容器和nginx容器,为了避免一些冲突,所以在部署前要一个干净的服务器环境。

创建compose-lnmp目录并创建docker-compose.yml 文件
[root@localhost ~]# mkdir compose-lnmp
[root@localhost ~]# cd compose-lnmp/
[root@localhost compose-lnmp]# vim docker-compose.yml
在这里插入图片描述

创建mysql目录并创建Dockerfile文件
[root@localhost compose-lnmp]# mkdir mysql
[root@localhost compose-lnmp]# cd mysql/
[root@localhost mysql]# vim Dockerfile
在这里插入图片描述

配置mysql数据库的账号密码
[root@localhost mysql]# vim mysql.env
在这里插入图片描述

创建php目录并创建php的Dockerfile文件
[root@localhost compose-lnmp]# mkdir php
[root@localhost compose-lnmp]# cd php/
[root@localhost php]# vim Dockerfile
在这里插入图片描述

创建php的网页文件
[root@localhost php]# vim index.php
在这里插入图片描述

创建php的配置文件
[root@localhost php]# vim www.conf
在这里插入图片描述

创建nginx目录并创建关于nginx的Dockerfile文件
[root@localhost compose-lnmp]# mkdir nginx
[root@localhost compose-lnmp]# cd nginx/
[root@localhost nginx]# vim Dockerfile
在这里插入图片描述

创建nginx.conf 的配置文件
[root@localhost nginx]# vim nginx.conf
在这里插入图片描述在这里插入图片描述

后台启动docker-compose.yml 文件
[root@localhost compose-lnmp]# docker-compose up -d
在这里插入图片描述
动态一直查看创建容器状态
[root@localhost compose-lnmp]# watch docker-compose ps
在这里插入图片描述
客户端使用浏览器访问192.168.10.101/index.php 验证 docker-compose 创建的 LNMP 环境

在这里插入图片描述

如果访问192.168.10.101:80 的nginx的网页的话是能访问到nginx但会出现403错误,这是因为我们能访问到nginx只是网页没有正常显示。
在这里插入图片描述


基于 Nginx 和 Consul 构建自动发现的 Docker 服务架构

服务器配置

操作系统主机名配置IP数量服务
Centos7.9consul2C/4G192.168.10.1011docker、docker-compose、consul、Consul-Template
Centos7.9registrator2C/4G192.168.10.1021docker、registrator

建立 Consul 服务

要想利用 Consul 提供的服务实现服务的注册与发现,需要建立 Consul 服务。在 Consul方案中,每个提供服务的节点上都要部署和运行 Consul 的 Agent,所有运行 Consul Agent 节点的集合构成 Consul Cluster。Consul Agent 有两种运行模式:Server 和 Client。这里的Server 和 Client 只是 Consul 集群层面的区分,与搭建在 Cluster 之上的应用服务无关。以Server 模式运行的 Consul Agent 节点用于维护 Consul 集群的状态,官方建议每个 Consul Cluster 至少有 3 个或以上的运行在 Server mode 的 Agent,Client 节点不限。

安装Consul

方法1:

关闭防火墙
[root@registrator ~]# systemctl stop firewalld
[root@registrator ~]# systemctl disable firewalld

修改主机名
[root@localhost ~]# hostname consul
[root@localhost ~]# bash
[root@consul ~]#
先上传Consul安装包到服务器Consul上面
[root@consul ~]# mkdir consul
[root@consul ~]# cd consul/
上传consul_1.9.4_linux_amd64.zip压缩包到/root/consul目录下
在这里插入图片描述

创建存放数据的目录
[root@consul ~]# mkdir -p /data/consul

启动consul
在这里插入图片描述

其中的命令参数:

  • -bootstrap:用来控制一个 server 是否在 bootstrap 模式,在一个 datacenter 中只能有一个server 处于 bootstrap 模式,当一个 server 处于 bootstrap 模式时,可以自己选举为 raftleader。
  • -data-dir 参数指定数据存储目录
  • -bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0。
  • -ui 参数指定开启 UI 界面,这样可以通过 http://localhost:8500/ui 这样的地址访问 consul 自带的 web UI 界面。
  • -client consul 绑定在哪个 client 地址上,这个地址提供 HTTP、DNS、RPC 等服务, 默认是 127.0.0.1。
  • -node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名。

方法2:
[root@consul ~]# mkdir consul
[root@consul ~]# mkdir -p /data/consul
[root@consul ~]# cd consul
[root@consul ~]# wget https://releases.hashicorp.com/consul/1.9.4/consul_1.9.4_linux_amd64.zip
[root@consul ~]# mv consul /usr/bin/
在这里插入图片描述
安装 consul 是用于服务注册,也就是容器本身的一些信息注册到 consul 里面,其他程序可以通过 consul 获取注册的相关服务信息,这就是服务注册与发现

consul常用命令

  • consul members //查看群集信息
  • curl 127.0.0.1:8500/v1/status/peers //查看集群 server 成员
  • curl 127.0.0.1:8500/v1/status/leader // 集 群 Raf leader
  • curl 127.0.0.1:8500/v1/catalog/services //注册的所有服务
  • curl 127.0.0.1:8500/v1/catalog/nginx //查看nginx 服务信息
  • curl 127.0.0.1:8500/v1/catalog/nodes //集群节点详细信息

容器服务自动加入 Nginx 集群

修改主机名
[root@localhost ~]# hostname registrator
[root@localhost ~]# bash
[root@registrator ~]#

关闭防火墙
[root@registrator ~]# systemctl stop firewalld
[root@registrator ~]# systemctl disable firewalld

安装 Gliderlabs/Registrator在registrator主机上
Gliderlabs/Registrator 可检查容器运行状态自动注册,还可注销 docker 容器的服务到服务配置中心。目前支持 Consul、Etcd 和 SkyDNS2

在这里插入图片描述在这里插入图片描述
测试服务发现功能是否正常

[root@registrator ~]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
[root@registrator ~]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
[root@registrator ~]# docker run -itd -p:88:80 --name test-03 -h test03 httpd
[root@registrator ~]# docker run -itd -p:89:80 --name test-04 -h test04 httpd

在这里插入图片描述

验证 http 和 nginx 服务是否注册到 consul方法1:
在这里插入图片描述
验证 http 和 nginx 服务是否注册到 consul方法2:
浏览器中,输入 http://192.168.10.101:8500,在 Web 页面中“单击 NODES”,然后单击“consurl-server01”,会出现 5 个服务,如下图
在这里插入图片描述

从结果看,httpd 和 nginx 服务已经注册到 consul 里面,说明服务正常。


安装 consul-template,在consul主机操作

Consul-Template 是基于 Consul 的自动替换配置文件的应用。在 Consul-Template 没出现之前,构建服务大多采用的与 Zookeeper、Etcd+Confd 类似的系统。

Consul-Template 是一个守护进程,用于实时查询 Consul 集群信息,并更新文件系统上任意数量的指定模板,生成配置文件。更新完成以后,可以选择运行 shell 命令执行更新操作,重新加载 Nginx。

Consul-Template 可以查询 Consul 中的服务目录、Key、Key-values 等。这种强大的抽象功能和查询语言模板可以使 Consul-Template 特别适合动态的创建配置文件。例如:创建Apache/Nginx Proxy Balancers 、 Haproxy Backends 、 Varnish Servers 、 Application、 Configurations 等。

准备 template nginx 模板文件
[root@consul ~]# vim /root/consul/nginx.ctmpl
在这里插入图片描述配置文件中画红线的部分指定的/var/log/nginx/目录是没有的需要我们手动创建的,而后面的kgc.cn-access.log; 文件是启动template后自动创建的。

[root@consul sbin]# mkdir /var/log/nginx

如果不创建的话启动nginx时就会报错,提示没有/var/log/ngixn/目录需要手动创建。
在这里插入图片描述

编译安装 nginx
[root@consul ~]# wget http://nginx.org/download/nginx-1.15.2.tar.gz
[root@consul ~]# tar zxvf nginx-1.15.2.tar.gz
[root@consul ~]# cd nginx-1.15.2
[root@consul ~]# yum -y install gcc make pcre-devel zlib-devel tar zlib
[root@consul ~]# ./configure --prefix=/usr/local/nginx && make && make install

配置 nginx
在配置文件中指定存放虚拟主机文件的路径和定义虚拟主机文件的后缀
[root@consul ~]# vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述 //在 http 段里面添加虚拟主机目录,注释原来的include

创建虚拟主机存放的目录vhost
[root@consul ~]# mkdir /usr/local/nginx/conf/vhost/
[root@consul ~]# /usr/local/nginx/sbin/nginx

重载nginx
[root@consul ~]# /usr/local/nginx/sbin/nginx -s reload

如果不重载的话 启动会报错,提示让重载nginx。
在这里插入图片描述


配置并启动 template
方法1:
上传下载好的consul-template_0.19.3_linux_amd64.zip压缩文件
在这里插入图片描述
解压consul-template_0.19.3_linux_amd64.zip压缩包并移动到/usr/bin/
[root@consul ~]# unzip consul-template_0.19.3_linux_amd64.zip
[root@consul ~]# mv consul-template /usr/bin/

启动consul-template
注意:如果在前台启动 template 服务,启动后不要按 ctrl+c 中止。
在这里插入图片描述此时查看/usr/local/nginx/conf/vhost目录发现已经生成kgc.conf了,可以通过192.168.10.101:83访问nginx
在这里插入图片描述在这里插入图片描述

方法2:

直接联网下载
[root@consul ~]# wget https://releases.hashicorp.com/consul-template/0.19.3/consul-template_0.19.3_linux_amd64.zip
[root@consul ~]# unzip consul-template_0.19.3_linux_amd64.zip
[root@consul ~]# mv consul-template /usr/bin/

启动consul-template
在这里插入图片描述

此时查看/usr/local/nginx/conf/vhost目录发现已经生成kgc.conf了,可以通过192.168.10.101:83访问nginx
在这里插入图片描述在这里插入图片描述
增加一个 nginx 容器节点,在registrator节点操作
[root@registrator ~]# docker run -itd -p:90:80 --name test05 -h test05 nginx

观察consul节点的 template 服务,会从模板更新/usr/local/nginx/conf/vhost/kgc.conf 文件内容,并且 重载 nginx 服务。

[root@consul ~]# cat /usr/local/nginx/conf/vhost/kgc.conf
在这里插入图片描述

案例二 概述

最近创鑫公司提出了一个新需求,将项目全部打包成镜像部署私有仓库服务,经过几轮商讨,最终选择 Docker Harbor。Docker Harbor 有可视化的 Web 管理界面,可以方便管理Docker 镜像,又提供了多个项目的镜像权限管理控制功能等。

案例二 前置知识点

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。它以 Docker 公司开源的 Registry 为基础,提供了管理 UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能。通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器, Harbor提供了更好的性能和安全,以提升用户使用 Registry 构建和运行环境传输镜像的效率。

Harbor 的优势
Harbor 具有如下优势:

  • 基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不 同的权限。
  • 基于镜像的复制策略: 镜像可以在多个 Harbor 实例之间进行复制(同步),适用于负载平衡、高可用性、多数据中心、混合和多云场景。
  • 支持 LDAP/AD:Harbor 与现有的企业 LDAP/AD 集成,用于用户认证和管理。
  • 删除图像和收集垃圾:镜像可以被删除,也可以回收镜像占用的空间。
  • 图形 UI:用户可以轻松浏览、搜索镜像仓库以及对项目进行管理。
  • 审计:对存储库的所有操作都进行记录。
  • RESTful API:用于大多数管理操作的 RESTful API,易于与外部系统集成。

Harbor 的构成
Harbor 在架构上主要有 Proxy、Registry、Core services、Database(Harbor-db)、Log collector(Harbor-log)五个组件:

(1)Proxy
Harbor 的 Registry 、 UI 、Token 等服务 通过一个前 置的反向代 理统一接收 浏览器和Docker 客户端的请求,并将请求转发给后端不同的服务。

(2)Registry
负责储存 Docker 镜像,并处理 Docker push/pull 命令。由于要对用户进行访问控制,即不同用户对 Docker image 有不同的读写权限,Registry 会指向一个 Token 服务,强制用户的每次 Docker pull/push 请求都要携带一个合法的 Token,Registry 会通过公钥对 Token 进行解密验证。

(3)Core services
这是 Harbor 的核心功能,主要提供以下服务:

  • UI(Harbor-ui):提供图形化界面,帮助用户管理 Registry 上的镜像(image), 并对用户进行授权。
  • Webhook: 为 了 及 时 获 取 Registry 上 image 状 态 变 化 的 情 况 , 在 Registry 上 配 置Webhook, 把状态变化传递给 UI 模块。
  • Token 服务:负责根据用户权限给每个 Docker push/pull 命令签发 Token。Docker 客户端向 Registry 服务发起的请求,如果不包含 Token,会被重定向,获得 Token 后再重新向 Registry 进行请求。

(4)Database(Harbor-db)
为 coreservices 提供数据库服务,负责储存用户权限、审计日志、Docker image 分组信
息等数据。

(5)Log collector(Harbor-log)
为了帮助监控 Harbor 运行,负责收集其他组件的log,供日后进行分析
在这里插入图片描述
Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker Compose 来对它进行部署

案例二:Harbor 构建 Docker 私有仓库

本案例环境和需求

在这里插入图片描述

案例实现思路

下面是本案例的实现思路:
(1)部署 Docker Compose。
(2)部署 Harbor 服务。
(3)通过 Harbor 管理上传的私有镜像。
(4)维护 Harbor。

案例二 实施

部署 Docker-Compose 服务
部署 Harbor 是需要 Docker-Compose 服务做支撑的,所以要先部署该服务

部署Docker-Compose前面已经安装过了,这里就省略了

部署 Harbor 服务
Harbor 被部署为多个 Docker 容器,因此可以部署在任何支持 Docker 的 Linux 发行版上。服务端主机需要安装 Python、Docker 和 Docker Compose。

consul节点操作
这里我是提前下载好的,上传到服务器然后查看解压

[root@consul consul]# ls
harbor-offline-installer-v2.2.1.tgz

解压到/usr/local/目录下
[root@consul ~]# tar zxvf harbor-offline-installer-v2.2.1.tgz -C /usr/local

修改配置文件
[root@consul ~]# cp /usr/local/harbor/harbor.yml.tmpl /usr/local/harbor/harbor.yml
[root@consul ~]# vim /usr/local/harbor/harbor.yml
修改hostname,修改为自己的IP
hostname: 192.168.10.101
将https端的全部注释,这里不使用https访问
也就是把画圈的地方都给注释掉,因为咱们没有证书服务
在这里插入图片描述
启动

Docker Compose与Harbor私有仓库 Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。它以 Docker 公司开源的 Registry 为基础,提供了管理 UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能。通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。 阅读详情

相关推荐

华为昇腾 910B 实战:DeepSeek-R1 蒸馏模型高效部署与性能调优全解析

本文详细解析了在华为昇腾910B硬件平台上高效部署DeepSeek-R1蒸馏系列模型(14B/32B版本)的完整实战流程。内容涵盖从MindIE环境搭建、镜像获取、模型准备,到服务配置、内存参数调优、性能测试及常见问题排查,为开发者提供了基于昇腾910B进行大模型部署与优化的全链路指南。

weixin_28235513的博客 210

docker-compose快速搭建docker私有仓库

创建docker-compose.yml并填入如下内容 version: '3' services: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/registry.crt REGISTRY_HTTP_TLS_KEY: /certs/registry.key REGISTRY..

m0_67393295的博客 2179

别再乱选保护板了!手把手教你用ABLIC S-8254A为3/4串锂电池组DIY安全保护电路

本文详细介绍了如何使用ABLIC S-8254A保护集成电路为3/4串锂电池组DIY安全保护电路。从选型策略、电路搭建到功能验证,手把手教你实现可靠的充放电保护系统,适用于无人机、电动工具等场景,确保锂电池组的安全使用。

weixin_42525264的博客 189

docker-compose使用

Compose使用

weixin_43762303的博客 2479

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 267

反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释

反卷积的作用 卷积中padding的几个概念 No Padding Half(Same) Padding Full Padding 反卷积 反卷积中的Padding参数 反卷积的stride参数 反卷积总结 参考资料

iioSnail的博客 2万+

CentOS7.9安装docker和docker-compose以及Harbor

1.首先查看linux版本 [root@localhost ~]# cat /proc/version Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020 [root@localhost ~]# uname -a Linux lo

Andyluna的博客 1958

【VoxCPM2】在Windows上从零搭建VoxCPM2 语音生成和语音克隆AI算法

建议你了解清楚VoxCPM2,再来考虑是否需要自己在本地搭建。

AnChenliang_1002的博客 753

【docker系列】使用docker-compose安装私有镜像仓库Harbor

在之前的文章中我们已经为大家介绍了docker registry v2私有镜像仓库,在实际的企业级生产环境中实际上很少会直接使用docker registry v2,而是使用Harbor。Harbor基于docker registry v2的基础上为用户提供了图形管理界面,同时支持多角色多用户的镜像访问权限管理,以及国际化的语言支撑(包括中文)。总之,Harbor面向用户更加友好,适用于多团队、多项目组情况下的镜像管理工作!.........

字母哥博客 4302

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号-串联端接

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑并且进行串联端接,以下图为例,准备好发送接收端的IBIS模型, (se_example.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(W1_welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 338

“快速掌握Vivado FPGA开发流程“——详解Vivado开发流程及实例

快速掌握Vivado FPGA开发流程”——详解Vivado开发流程及实例FPGA技术在现代电子领域中应用越来越广泛,而Vivado作为业界最流行的FPGA设计工具之一,也受到越来越多人的关注和使用。那么如何快速掌握Vivado FPGA开发流程呢?本文将详细介绍Vivado开发流程,并通过实例来加深您的理解。首先,我们需要了解Vivado开发流程的主要步骤:创建工程、设计电路、约束电路、生成比特流。接下来,让我们一步步了解这些步骤。

2301_78484069的博客 732

Docker Compose与私有仓库

Docker Compose和私有仓库是现代容器化技术栈中的重要组成部分。通过本文的学习,你应该掌握了:Docker Compose核心用法:从简单的WordPress部署到生产就绪的配置私有仓库的选择与应用:从基础的Registry到企业级的Harbor镜像生命周期管理:构建、标签、推送、安全扫描的全流程渐进式演进策略:从小规模起步到企业级架构的平滑升级路径没有最好的技术,只有最适合的技术。根据你的团队规模、业务需求和资源预算,做出明智的选择。随着云原生生态的快速发展,新的工具和技术不断涌现。

仕别三日的博客 739

大模型微调部署实战及类GPT工具的高效使用

本文主要介绍了专栏《大模型微调部署实战及类GPT工具的高效使用》的核心内容,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 专栏亮点 3. 你的收获 4. 详细目录

herosunly的博客 22万+

Docker Compose与私有仓库部署

它以 Docker 公司开源的 Registry 为基础,提供了管理 UI、基于角色的访问控制(Role Based AccessControl)、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能。作为一个企业级私有 Registry 服务器, Harbor提供了更好的性能和安全,以提升用户使用 Registry 构建和运行环境传输镜像的效率。6.在浏览器搜索配置harbor机器的IP,进行使用。用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不 同的权限。

m0_75135871的博客 1478

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Docker Compose 与 Harbor 私有仓库

在当今云计算与容器化技术飞速发展的时代,Docker 作为容器化领域的领军技术,已成为开发与运维团队不可或缺的工具。本文将探讨 Docker Compose 多容器编排工具与 Harbor 企业级私有仓库的核心技术,帮助读者掌握从容器管理到镜像安全存储的完整解决方案。Docker Compose 的前身是 Fig,是定义和运行多个 Docker 容器的强大工具。通过一个配置文件即可定义多个容器,并使用一条命令启动,极大简化了多容器应用的部署。安装步骤。

2503_91100205的博客 1178

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: Docker Swarm管理
下一篇: OpenShift与Rancher
lxiaoyouyouj
博客等级 码龄6年 32粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxiaoyouyouj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值