Docker进阶:使用Docker部署Harbor私有镜像仓库

Docker进阶:使用Docker部署Harbor私有镜像仓库

  • 1、安装Docker和Docker Compose
    • 1、安装Docker、Docker Compose
    • 2、验证Docker和Docker Compose是否成功安装
    • 3、先启动运行docker服务
  • 2、下载并配置Harbor
    • 1、下载最新版本的Harbor离线安装包
    • 2、配置Harbor的主机名和管理员密码
    • 3、配置Harbor的存储方式(本地存储)
  • 3、部署、配置Harbor(https访问)
    • 1、执行以下命令启动安装Harbor服务
    • 2、列出所有服务
    • 3、 Web 页面测试访问
  • 4、镜像推送和管理
    • 1、登录到 Docker Harbor镜像仓库
    • 2、使用Docker客户端推送镜像到Harbor
    • 3、例子:将 nginx镜像推送到名为 library的镜像仓库
    • 4、拉取镜像


💖The Begin💖点点关注,收藏不迷路💖

Harbor是一个开源的企业级Docker Registry服务器,提供了安全的镜像管理功能,支持用户和角色的管理、访问控制、以及活动审计等特性。通过搭建Harbor,我们可以方便地管理和共享Docker镜像,适用于企业内部的应用部署和开发团队的协作。

在本篇博客中,我们将学习如何使用Docker来部署Harbor私有镜像仓库。

1、安装Docker和Docker Compose

首先,确保你的服务器上已经安装了Docker和Docker Compose。如果没有安装,可以按照以下步骤进行安装:

1、安装Docker、Docker Compose

1、安装Docker
yum install docker-ce docker-ce-cli containerd.io2、安装Docker Compose
# 官网安装
sudo curl -L "https://github.com/docker/compose/releases/download/<VERSION>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose--将<VERSION>替换为实际的版本号,$(uname -s)-$(uname -m) 为实际系统架构。下载命令:curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose# 授予docker-compose二进制文件可执行权限:sudo chmod +x /usr/local/bin/docker-compose

2、验证Docker和Docker Compose是否成功安装

docker --version
docker-compose --version

在这里插入图片描述

3、先启动运行docker服务

systemctl start docker

要不Harbor安装会报错:

[Step 0]: checking if docker is installed ...Note: docker version: 25.0.4[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.24.7[Step 2]: loading Harbor images ...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

2、下载并配置Harbor

接下来,我们将下载最新版的Harbor离线安装包并进行配置。

1、下载最新版本的Harbor离线安装包

在这里插入图片描述

# 1、下载
wget https://github.com/goharbor/harbor/releases/download/v2.10.1/harbor-offline-installer-v2.10.1.tgz# 2、解压
tar xvf harbor-offline-installer-v2.10.1.tgz# 3、进入解压目录
cd harbor# 4、将文件 harbor.yml.tmpl 复制为 harbor.ymlcp harbor.yml.tmpl harbor.yml

在这里插入图片描述

2、配置Harbor的主机名和管理员密码

使用 vim 命令编辑 harbor.yml 文件。

vim harbor.yml

找到主机名和管理员密码的配置项,修改主机名和管理员密码。

hostname: your-hostname  # 替换为你的主机名
https:port: 8808# 如果需要使用HTTPS,请配置证书和私钥
harbor_admin_password: your-password  # 设置管理员密码

3、配置Harbor的存储方式(本地存储)

# 修改存储类型为本地存储
data_volume: /data
# 更多配置可根据实际需求进行修改

在这里插入图片描述
在这里插入图片描述

3、部署、配置Harbor(https访问)

在配置完成后,我们可以使用Docker Compose来部署Harbor。

1、执行以下命令启动安装Harbor服务

sudo ./install.sh

在这里插入图片描述

2、列出所有服务

docker-compose ps

在这里插入图片描述

3、 Web 页面测试访问

等待安装完成后,通过浏览器访问http://your-hostname:80(替换为你的主机名)来验证Harbor是否成功部署。

用户名默认是 admin,密码是 Harbor12345。具体见harbor.yml文件中配置。

在这里插入图片描述
在这里插入图片描述

4、镜像推送和管理

现在,已经成功部署了Harbor私有镜像仓库。可以使用Docker客户端或者Harbor的Web界面来管理镜像,包括上传、下载、删除等操作。

1、登录到 Docker Harbor镜像仓库

##语法
docker login your-hostname[root@VM-24-12-centos ~]# docker login 111.230.6.193:8088
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-storeLogin Succeeded
[root@VM-24-12-centos ~]# 

2、使用Docker客户端推送镜像到Harbor

1、给镜像打标签并推送到指定的镜像仓库docker tag your-image:tag your-hostname/your-project/your-image:tagdocker tag 命令用于给一个现有的镜像打标签。
your-image:tag 是要打标签的现有镜像的名称和标签。
your-hostname/your-project/your-image:tag 是新标签的完整名称,包括仓库地址、项目名称、镜像名称和标签。这个操作类似于给镜像创建一个别名,让它在不同的仓库或项目中使用相同的镜像。docker push your-hostname/your-project/your-image:tagdocker push 命令用于将本地的镜像推送(上传)到指定的镜像仓库。
your-hostname/your-project/your-image:tag 是要推送的镜像的完整名称,包括仓库地址、项目名称、镜像名称和标签。这个命令会将本地镜像推送到指定仓库中。

3、例子:将 nginx镜像推送到名为 library的镜像仓库

在这里插入图片描述

在这里插入图片描述

1、首先,给 nginx:latest镜像打上一个新的标签docker tag nginx:latest 111.230.6.193:8088/library/nginx:latest2、使用 docker push 命令将打好标签的 nginx:latest镜像推送到 library镜像仓库docker push 111.230.6.193:8088/library/nginx:latest

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4、拉取镜像

docker pull 仓库地址/<镜像名称>:<标签>如:docker pull 111.230.6.193:8088/library/nginx:latest

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

小程序利用WebService跟asp.net交互过程发现的问题并处理

最近在研究一个项目&#xff0c;用到asp.net跟小程序交互&#xff0c;简单的说就是小程序端利用wx.request发起请求。获取asp.net 响应回来的数据。但经常会报错。点击下图的测试按钮 出现如下错误&#xff1a; 百思不得其解&#xff0c;试了若干方法&#xff0c;都不行。 因为…

web学习笔记(四十九)

目录 1. 初识 Express 1.1 什么是 Express 1.2 Express 能做什么 1.3 Express 的基本使用 1.4 如何把内容响应给客户端 2. 托管静态资源 2.1 express.static() 1. 初识 Express 1.1 什么是 Express 之前我们有讲过可以通过node.js内置的http模块来创建服务器&#x…

迭代器模式(统一对集合的访问方式)

目录 前言 UML plantuml 类图 实战代码 Iterator ArrayList Client 自定义迭代器 TreeNode TreeUtils Client 前言 在实际开发过程中&#xff0c;常用各种集合来存储业务数据并处理&#xff0c;比如使用 List&#xff0c;Map&#xff0c;Set 等等集合来存储业务数…

Ubuntu下使用vscode进行C/C++开发:进阶篇

在vscode上进行C/C++开发的进阶需求: 1) 编写及调试源码时,可进行断点调试、可跨文件及文件夹进行函数调用。 2) 可生成库及自动提取对应的头文件和库文件。 3) 可基于当前工程资源一键点击验证所提取的库文件的正确性。 4) 可结合find_package实现方便的调用。 对于第一…

【C语言】预处理常见知识详解(宏详解)

文章目录 1、预定义符号2、define2.1 define 定义常量2.2 define 定义宏 3、#和##3.1 **#**3.2 **##** 4、条件编译&#xff08;开关&#xff09; 1、预定义符号 在C语言中内置了一些预定义符号&#xff0c;可以直接使用&#xff0c;这些符号实在预处理期间处理的&#xff0c;…

ES6 学习(三)-- es特性

文章目录 1. Symbol1.1 使用Symbol 作为对象属性名1.2 使用Symbol 作为常量 2. Iterator 迭代器2.1 for...of循环2.2 原生默认具备Interator 接口的对象2.3 给对象添加Iterator 迭代器2.4 ... 解构赋值 3. Set 结构3.1 初识 Set3.2 Set 实例属性和方法3.3 遍历3.4 相关面试题 4…

C/C++ ③ —— C++11新特性

1. 类型推导 1.1 auto auto可以让编译器在编译期就推导出变量的类型 auto的使⽤必须⻢上初始化&#xff0c;否则⽆法推导出类型auto在⼀⾏定义多个变量时&#xff0c;各个变量的推导不能产⽣⼆义性&#xff0c;否则编译失败auto不能⽤作函数参数在类中auto不能⽤作⾮静态成员…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题 信息素养真题及解析第26套

少儿编程 科技素养 信息素养真题第26套 1、本次考试名称STEMA是STEM Assessment 的缩写。在保持第一个和最后一个字母不变的情况下,将 STEMA 的字母排列组合&#xff0c;一共可以组成&#xff08;&#xff09;个与原先不同的组合。 A、5 B、6 C、12 D、20 答案&#xff1a…

基础算法-去重字符串,辗转相除法,非递归前序遍历二叉树题型分析

目录 不同子串 辗转相除法-求最大公约数 二叉树非递归前序遍历 不同子串 从a开始&#xff0c;截取 a aa aaa aaab 从第二个下标开始a aa aab 从第三个 a ab 从第四个 b 使用set的唯一性&#xff0c;然后暴力遍历来去去重&#xff0c;从第一个下标开始截取aaab a aa aaa aaab…

激光是如何产生的?

激光产生的原理 美国于1960年成功研制出世界上第一台红宝石激光器&#xff0c;我国也于1961年成功研制出第一台国产红宝石激光器&#xff08;诞生于中国科学院长春光学精密机械研究所&#xff09;&#xff0c;激光技术被认为是第二个20世纪&#xff0c;继量子物理、无线电技术、…

实时数仓之实时数仓架构(Hudi)

目前比较流行的实时数仓架构有两类&#xff0c;其中一类是以FlinkDoris为核心的实时数仓架构方案&#xff1b;另一类是以湖仓一体架构为核心的实时数仓架构方案。本文针对FlinkHudi湖仓一体架构进行介绍&#xff0c;这套架构的特点是可以基于一套数据完全实现Lambda架构。实时数…

element-ui 自定义点击图标/文本/按钮触发el-date-picker时间组件,不使用插槽

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1. 图片预览 2.上代码 2.1html <el-button class"hide_input" size"small"><svg t"1711608996149" class"icon" viewBox"0 0 1024 1024" version"1.1"…