安装使用docker harbor并推送镜像到仓库

ops/2024/10/31 22:50:03/

1.概要
通过上一章节的讲解,我们基本了解了docker的操作命令,在文章的最后我们成功的推送一个镜像到DockerHub的镜像仓库。从流程上说,操作过程可以说很完美,但是整个推送过程消耗的时间太长,我们消耗了大量时间在访问境外的镜像网站上,这无法满足我们实际应用中快速推送、快速部署的要求,我们今天就自己在内网搭建一个docker仓库(以下简称为私服),减少外网交互。
搭建私服需要安装三个组件:Docker、Docker-Compose、Harbor,其中Docker负责基础操作,Docker-Compose负责线程编排、Harbor提供可视化的界面。

2.搭建docker
安装docker

curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum clean yum makecache fastyum -y install docker-cesystemctl start docker

3.搭建docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose //目录授权
sudo chmod +x /usr/local/bin/docker-compose//验证结果
docker-compose --version

4.搭建Harbor
将本地的harbor文件上传到服务器然后解压
配置harbor.cfg

hostname = [“访问IP”]
harbor_admin_password = [“登录用户密码”]
ui_url_protocol = http #注意不是https

5.修改访问端口

需要修改两个文件docker-compose.yml和common/templates/registry/config.yml

在这里插入图片描述
在这里插入图片描述
6.启动项目
在harbor根目录下执行 ./prepare 更新配置文件中的引用文件,如果没有错误提示,则证明执行成功。
在harbor根目录下执行 ./install.sh,如下图证明启动成功。
在这里插入图片描述
输入地址 http://127.0.0.1:9001 就可以访问harbor的web项目了。帐号默认为admin,密码是我们上面章节介绍修改配置文件的 harbor_admin_password = [“登录用户密码”]。
7.客户端改造并推送镜像到私服
7.1服务端创建用户和项目
harbor->[系统管理]->[用户管理],创建一个新用户。xiaozeng
harbor->[项目]->[新建项目]->[自定项目](我们这里的项目名称叫 abcd
)。

harbor->[项目]->spbatc]->[成员](添加相应成员,我们这里的成员是 xiaozeng)。

修改客户端文件
vi /etc/docker/daemon.json

在这里插入图片描述
重启docker
root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker

Vi /usr/lib/systemd/system/docker.service
修改一下这个文件否则报错

截图
在这里插入图片描述
这个是仓库的ip+端口

都修改完重启docker和仓库

然后用docker login ip:9001访问(这是我的ip正确的是自己仓库的就行)

推送镜像:

docker push ip:9001/abcd/harbor-db:1.0.0

ip:9001这个是仓库地址

abcd这个是仓库里面的项目名称
共同组成整个镜像名称。


http://www.ppmy.cn/ops/129957.html

相关文章

spring中bean的四种创建方式

本次分享一下spring中bean的四种创建方式 1. 方式一:普通配置 <bean id"myBean" class"cn.cjc.MyBean"> </bean>2. 方式二:集成静态工厂 // 准备静态工厂 public class CarFactory { //静态方法&#xff0c;返回一个对象 public static Car…

webSocket简单接收发送案例

pom添加&#xff1a; <!-- websocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> socket服务实现 import com.alibaba.fastjson.JSON; impo…

【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket

文章目录 Qt系统相关1. 多线程1.1 Qt多线程介绍1.2 常用函数1.3 线程安全 2. 网络2.1 UDP Socket2.2 TCP Socket Qt 系统相关 1. 多线程 1.1 Qt多线程介绍 QThread 代表一个在应用程序中可以独立控制的线程&#xff0c;它还可以和进程中的其他线程共享数据。QThread 对象管理…

无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比

JSP 跳点搜索算法与改进 A*算法对比 一、算法概述: 跳点搜索(Jump Point Search,JPS)算法:一种用于路径规划的启发式搜索算法。它主要用于在网格地图(如游戏地图、机器人运动规划地图等)中快速找到从起点到终点的最短路径。该算法在改进 A*算法的基础上进行了优化,通过跳过一…

【在Linux世界中追寻伟大的One Piece】Socket编程TCP

目录 1 -> TCP socket API 2 -> V1 -Echo Server 2.1 -> 测试多个连接的情况 1 -> TCP socket API socket()&#xff1a; socket()打开一个网络通讯端口&#xff0c;如果成功的话&#xff0c;就像open()一样返回一个文件描述符。应用程序可以像读写文件一样用r…

一个vue3的待办列表组件

一个vue3的待办列表组件, 仿企业微信的待办列表 TodoList.vue <template><div><el-input v-model"todoInput" placeholder"写下你的待办事项..." class"el-input" keyup.enter"addTodo"input-style"background-c…

Chromium HTML Input 类型password 对应c++

一、密码字段&#xff1a; 密码字段通过标签 <input type"password"> 来定义: <form> Password: <input type"password" name"pwd"> </form> 二、password 对应c定义&#xff1a; third_party\blink\renderer\core\…