目录

一. Docker 重启策略

二. Docker Compose工具的应用

1. 什么是 Docker compose

2. Docker compose 的安装

3. 编辑文件格式及编写注意事项

4. docker-compose的基本用法

三. Harbor私有仓库

1. 什么是Harbor

2. Harbor 的优势

3. Harbor 的构成

四. 部署Harbor私有仓库

1. 下载安装包

2. 上传服务器进行解压 拷贝harbor

3. 运行Harbor的安装脚本

4. 安装完成用浏览器访问

五. Harbor客户端

1. 所有的docker主机设置daemon.json

2. 找一个 docker 主机,登录到我们的 Harbor 仓库

3. 然后尝试使用命令行 push 一个镜像到 Harbor 上

4. 浏览器查看


随着 Docker 技术的广泛应用,容器化部署已成为现代软件开发与运维的重要趋势。本章将深入探讨Docker compose 与私有仓库部署的关键技术,旨在帮助读者更好地理解和实践 Docker 的高级应用。Docker Compose 作为定义及运行多个 Docker 容器的工具,能够极大地简化多容器应用的部署与管理。而私有仓库的搭建,则是确保镜像安全、高效传输与存储的关键。

一. Docker 重启策略

Docker 容器的重启策略是面向生产环境的一个启动策略,在开发过程中可以忽略该策略。Docker 容器的重启都是由 Docker 守护进程完成的,因此与守护进程息息相关。

Docker 容器的重启策略如下:

  • no,默认策略,在容器退出时不重启容器
  • on-failure,在容器非正常退出时(退出状态非0),才会重启容器
  • on-failure:3,指定启动的次数,在容器非正常退出时重启容器,最多重启3次
  • always,在容器退出时总是重启容器
  • unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器

使--restart 指定重启策略

docker run -itd --restart=always--name host1 busybox sh

容器常见的退出状态码

状态码说明
0正常退出
125Docker守护进程本身错误
126容器启动后,要执行的默认命令无法调用
127容器启动后,要执行的默认命令不存在
其他容器启动后正常执行的命令返回的状态码

二. Docker Compose工具的应用

1. 什么是 Docker compose

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

2. Docker compose 的安装

3. 编辑文件格式及编写注意事项

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

  • (1)不支持制表符 tab 键缩进,需要使用空格缩进
  • (2)通常开头缩进两个空格。
  • (3)字符后缩进一个空格,如冒号、逗号、横杆。
  • (4)用#号注释。
  • (5)如果包含特殊字符,要使用单引号(')引起来。
  • (6)布尔值(true、false、yes、 no、 on、 off)必须用引号("")括起来,这样分析器会将它们解释为字符串。

4. docker-compose的基本用法

docker-compose的运行

(1)前台运行

docker-compose up

(2)后台运行

docker-compose up -d

(3)重新构建运行

docker-compose up --build -d

docker-compose的关闭

(1)关闭指定容器

docker-compose stop 《容器名称》

(2)全部关闭

docker-compose stop

docker-compose的启动

(1)启动指定容器

docker-compose start 《容器名字》

(2)全部启动

docker-compose start

docker-compose的重启

(1)重启指定容器

docker-compose restart 《容器名称》

(2)全部重启

docker-compose restart

删除

docker-compose down

三. Harbor私有仓库

1. 什么是Harbor

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

2. Harbor 的优势

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

3. Harbor 的构成

Harbor 在架构上主要有 Proxy、Registry、core services、Database(Harbor-db)、Logcollector(Harbor-log)五个组件:

(1)Proxy

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

(2)Registry

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

(3)Core service

这是 Harbor 的核心功能,主要提供以下服务:

  • UI(Harbor-ui):提供图形化界面,帮助用户管理 Registry 上的镜像(image),并对 用户进行授权。
  • Webhook:为了及时获取Registry上image 状态变化的情况,在 Registry上 配 置 webhook,  把状态变化传递给 UI 模块。

(4)Token 服务

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

(5)Database(Harbor-db

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

(6)Log collector(Harbor-log)

为了帮助监控 Harbor 运行,负责收集其他组件的 log,供日后进行分析

Harbor 的每个组件都是以 Docker 容器的形式构建的,因此,使用 Docker compose 来 对它进行
部署。

四. 部署Harbor私有仓库

操作系统服务IP
OpenEulerharbor192.168.10.101
OpenEuler客户端192.168.10.102

1. 下载安装包

https://github.com/goharbor/harbor/releases/tag/v2.4.3

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

2. 上传服务器进行解压 拷贝harbor

标橙色的地方注释掉 修改当前所在的节点ip 

3. 运行Harbor的安装脚本

...

4. 安装完成用浏览器访问

默认用户名为admin,密码为配置文件中定义的密码(Harbor12345)

登录进去新建一个账号名为zhangsan 创建一个项目名为kubernetes

五. Harbor客户端

1. 所有的docker主机设置daemon.json

回到命令行上测试一下 push 和 pu11。由于我们自己搭建的私有仓库默认是不受 Docker 信任的,所以需要先在配置文件中增加如下配置项让 Docker 信任该 registry:

2. 找一个 docker 主机,登录到我们的 Harbor 仓库

3. 然后尝试使用命令行 push 一个镜像到 Harbor 上

4. 浏览器查看

5. 退出

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

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

相关文章

数字隔离器,如何扛起现代智能家电的电气安全“大旗”

随着现代社会生活节奏的不断加速,人们对于属于自己的休闲时间愈发珍视,而智能家居作为提升人类居家幸福感与舒适度的现代化产物,不仅能有效满足人们对高品质生活的追求,还能推动产业升级与经济增长,引导智能家电设备从…

mybatis3调用瀚高procedure报错(APP)

文章目录 环境文档用途详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5 文档用途 mybatis3调用瀚高procedure报错(错误信息:调用过程请使用CALL)的解决方案。 详细信息 客户项目中使用…

96道Docker 容器高频题整理(附答案背诵版)

简述什么是 Docker 容器? Docker容器是一个开源的应用容器引擎,它让开发者可以将他们的应用以及依赖包打包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上,包括流行的Linux机器、Windows机器等。Docker容器利用…

成都芯谷金融中心·文化科技园打造文化科技高地

成都芯谷金融中心正式启动运营,标志着双流区集成电路产业生态圈的关键拼图落位。该项目以"文化科技金融"融合发展为核心理念,旨在构筑服务区域实体经济的创新引擎。 核心战略定位与区域价值 产业赋能枢纽:深度聚焦集成电路、新型…

IntelliJ IDEA 加速优化指南

IntelliJ IDEA 加速优化指南 IntelliJ IDEA 是一款功能强大的 IDE,但随着项目规模增大和长期使用,可能会出现性能下降的情况。以下是一些有效的加速优化方法: 1. 基础配置优化 内存分配调整 修改 idea.vmoptions 文件 (位置:H…

基于YOLO的智能车辆检测与记录系统

基于YOLO的智能车辆检测与记录系统 摘要 本报告总结了智能车辆检测系统的开发工作,主要包括车辆数据标注、YOLO模型训练及QT交互系统搭建三部分。通过使用专业标注工具完成车辆目标数据集的标注与预处理,基于YOLO模型构建车辆检测算法并优化训练流程&a…

网络调试的艺术:利用浏览器Network工具优化你的网站

🧭 General(通用信息) General 部分通常包含请求的基本信息,如请求方法、URL、协议版本等 字段名称描述常见值示例Request URL请求的完整地址(包括协议、域名、路径、查询参数)https://example.com/api/d…

Mongodb数据库应用

目录 什么是mongodb 主要特点 MongoDB 概念解析 完整术语列表 MongoDB 安装 MongoDB Shell 安装 MongoDB Shell 验证 MongoDB Shell 数据库管理 查看数据库列表 创建数据库 实例 删除数据库 实例 默认数据库 系统内置数据库 集合管理 查看集合 创建集合 实…

以太网基础与 VLAN 配置实验

以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过交换机实现 LAN 互连虽然可以解决冲突严重的问题,但仍然不…

开源流程引擎Camunda简介

目录 简单介绍 主要组件与名词介绍 常见名词解释 核心组件介绍 一些思考 与前端的关系 前端逻辑的简化 后端接口的专注 流程引擎的控制作用 数据和状态的管理 监控和管理的集中化 参考资料 简单介绍 Camunda的本质是可以独立运行的一套流程引擎,流程引擎…

从面试题出发,如何设计消息队列

一、引言 在 Java 开发面试的战场上,消息队列相关问题一直是高频考点。面试官们常常抛出这样的问题:“如果让你设计一个消息队列,你会怎么做?” 这可不是在故意刁难,背后有着深层次的考察意图。​ 从实际场景来看&am…

卡萨帝发布AI深度科技:实现从守护生活到守护文明的升级

2025年6月25日,以“AI致远 爱不凡”为主题的卡萨帝思享荟于重庆科学会堂启幕。活动现场,卡萨帝发布“AI深度科技”。同时,搭载AI深度科技的“AI鉴赏家套系”同步上市。 AI浪潮下,卡萨帝品牌不断升级,从“高端家电领导…

FastAPI + PyMySQL 报错:“dict can not be used as parameter”的原因及解决方案

❌ FastAPI PyMySQL 报错 “dict can not be used as parameter” 问题及解决方案 最近在开发一个基于 FastAPI 的碳足迹因子智能匹配系统时,后端保存接口数据到 MySQL 时遇到了如下错误: ❌ 解析失败: dict can not be used as parameter 一、问题背景…

解决 “docker-compose: command not found“ 错误

解决 “docker-compose: command not found” 错误 在 CentOS 7 上看到这个错误,说明系统中未安装 docker-compose。以下是完整的安装和配置步骤: 一、安装 Docker Compose 1. 确保已安装 Docker # 检查 Docker 是否安装 docker --version# 如果未安…

Android11 深休后系统定时唤醒导致网络请求服务器过载

硬件平台:QCS6125 软件平台:Android11 问题:每天的7:00和22:00 服务器会突然收到批量设备的网络请求,导致服务器过载。 通过系统的logcat日志发现了系统在休眠后,每天会有22:00、7:00的唤醒,从而导致这个时…

部署网站需求全满足:Websoft9 多应用托管一站式方案解析

在数字化浪潮中,搭建专业网站已成为企业触达客户的核心通道。然而,从服务器选型到软件环境配置,传统建站模式往往让技术门槛成为中小企业的 “拦路虎”。Websoft9 多应用托管平台通过深度优化的镜像技术,重新定义了 WordPress 建站…

Spring Boot 启动优化实践

本文系统性分析并优化了一个Spring Boot项目启动耗时高达 280 秒的问题。通过识别瓶颈、优化分库分表加载逻辑、异步初始化耗时任务等手段,最终将启动耗时缩短至 159 秒,提升近 50%。文章涵盖启动流程分析、性能热点识别、异步初始化设计等关键技术细节&…

Jenkins执行Jenkinsfile报错

遇到部署的步骤时传输文件到其他服务器,文件传上去了,但是命令都没有执行成功。 写法: 报错了:ERROR:Exception when publishing,exception message [Exec exit status not zero.Status [1]] 原因是因为:cd 引用了环…

Modbus TCP转Profibus DP网接APM810/MCE安科瑞多功能电表通讯案例

Modbus TCP转Profibus DP网接APM810/MCE安科瑞多功能电表通讯案例 在工业自动化和电力监控领域,Modbus TCP与Profibus DP是两种常见的通讯协议,它们各自有着广泛的应用场景和优势。而当需要将这两者进行连接,以实现不同设备间的数据传输和信…

MySQL常见问题概述

一、MySQL常见问题概述 MySQL是最常用的关系型数据库,但使用中常会遇到 性能慢、数据丢失、主从不同步、锁冲突 等问题。这些问题可能导致系统响应变慢、用户操作失败,甚至数据损坏。 核心解决思路:先定位问题类型(是查询慢&…