harbor部署+docker-compose

news2024/11/15 16:18:57

harbor部署

harbor介绍

Harbor 是一个开源的企业级容器镜像仓库,用于存储和分发 Docker 镜像及其他容器格式的镜像。

  • Harbor 提供了一个集中化的存储库,方便团队成员共享和管理容器镜像。你可以将构建好的镜像推送到 Harbor 仓库中,其他成员可以从仓库中拉取镜像进行部署。
  • Harbor 提供了一个直观的 Web 界面,方便用户管理镜像仓库、用户和权限等。你可以通过 Web 界面进行镜像的上传、下载、搜索和管理操作。
  • Web 界面还提供了丰富的统计信息和日志记录,方便用户监控和审计镜像仓库的使用情况。

由于要使用python环境运行docker-compose,所有要验证python :python --version

pip是python的包管理工具,和yum对redhat的关系是一致的

查看安装python的第三方版本号 pip list

使用harbor仓库的步骤

1.安装pip 

yum -y install python2-pip

2.升级版本,没有指定源无法升级

pip install  --upgrade pip

3.临时使用,指定版本号,升级pip

pip install --upgrade pip==20.3  -i https://mirrors.aliyun.com/pypi/simple

4.查看pip版本号,升级到20.3

pip list

5.安装docker-compose,忽略requests

[root@docker2 ~]# pip install docker-compose --ignore-installed requests  -i https://mirrors.aliyun.com/pypi/simple

6.上传harbor文件,解压harbor

[root@docker2 ~]# ls
anaconda-ks.cfg  docker.sh  harbor-offline-installer-v2.11.1.tgz
[root@docker2 ~]# tar -zxvf harbor-offline-installer-v2.11.1.tgz 
[root@docker2 ~]# ls
anaconda-ks.cfg  harbor
docker.sh        harbor-offline-installer-v2.11.1.tgz

7.harbor的配置文件是 harbor.yml但是解压后的目录中只有harbor.yml.tmpl(模板),复制它,改名

[root@docker2 ~]# cd harbor
[root@docker2 harbor]# ls
common.sh              harbor.yml.tmpl  LICENSE
harbor.v2.11.1.tar.gz  install.sh       prepare
[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker2 harbor]# ls
common.sh              harbor.yml       install.sh  prepare
harbor.v2.11.1.tar.gz  harbor.yml.tmpl  LICENSE

8.修改配置文件

[root@docker2 harbor]# vim harbor.yml

修改主机地址(hostname),注释掉https安全网站的配置,查看用户(admin)和密码(Harbor12345)

9.执行初始化操作

[root@docker2 harbor]# ./prepare 
prepare base dir is set to /root/harbor
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.     //没有安装,配置docker

10.安装docker,配置docker的相关配置

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ],
    "hosts": [
	"tcp://0.0.0.0:2375",
	"unix:///var/run/docker.sock"

   ],
    "insecure-registries":[
	"http://192.168.118.57"   //本机的IP地址

   ]
}

11. 执行./prepare检查环境,下载镜像

[root@docker2 harbor]# ./prepare 

12.执行./install.sh

13.docker ps --all

14.在远程主机上访问80,登录,查看项目

15.上传:先登录,在上传

     登录

          docker login http://192.168.118.57

          用户:admin

          密码:Harbor12345

     打标签

           docker tag centos:latest 192.168.118.57/library/wjcentos:v0

     上传
           docker push 192.168.118.57/library/wjcentos:v0

16.在浏览器上查看上传的镜像

17.测试:

新建一台机器,在该机器上拉取刚刚上传的镜像(192.168.118.57/library/wjcentos:v0)

在新机器上编辑docker配置文件(/etc/docker/daemon.json),添加安装harbor主机的IP地址

    "insecure-registries":[
	"http://192.168.118.55:5000",
	"http://192.168.118.57"     

   ]

[root@docker1 ~]# docker pull 192.168.118.57/library/wjcentos:v0
v0: Pulling from library/wjcentos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 192.168.118.57/library/wjcentos:v0
192.168.118.57/library/wjcentos:v0
[root@docker1 ~]# docker images
REPOSITORY                        TAG       IMAGE ID       CREATED        SIZE
192.168.118.55:5000/centos        yum       11c7f617cd4a   47 hours ago   272MB
192.168.118.57/library/wjcentos   v0        5d0da3dc9764   2 years ago    231MB
centos                            latest    5d0da3dc9764   2 years ago    231MB

 

docker-compose的编排

学习kubernetes的基础

通过运行一个yum管理docker容器

注意事项:

要在 docker-compose.yml ⽂件所在的⽬录下才能通过 docker compose 命令启动容器。

执行docker-compose命令时必须要在harbor目录下,因为docker-compose依赖harbor

[root@docker2 harbor]# ls
common     docker-compose.yml     harbor.yml       install.sh  prepare
common.sh  harbor.v2.11.1.tar.gz  harbor.yml.tmpl  LICENSE

[root@docker2 harbor]# docker  compose start|stop|down

docker-compose定义

1. docker compose 是 docker 官⽅的开源项⽬,负责实现对docker 容器集群的快速编排(容器,依赖,⽹络,挂载)
2. compose 是 docker 公司推出的⼀个⼯具软件,可以管理多个docker 容器组成的应⽤
3. 需要定义⼀个 YAML 格式的配置⽂件 docker-compose.yml,写好多个容器之间的调⽤关系
4. 使⽤ compose 的步骤
      1. 使⽤ Dockerfile 定义各个微服务应⽤并构建出对应的镜像⽂件Dockerfile 的使⽤,以便可以             在任何地⽅复制。
      2. 使⽤ docker-compose.yml 定义⼀个完整的业务单元,安排好整体应⽤中的各个容器服务。
      3. 最后,执⾏ docker-compose up 命令来启动并运⾏整个应⽤程序,完成⼀键部署。

Docker-compose 将管理的容器分为三层:⼯程(project)、服务(service)、容器(container)
1. ⼯程:运⾏ compose 的⽬录下所有的⽂件,包括 docker-compose.yml、extends ⽂件、环境变量⽂件等组成⼀个⼯程, 若⽆特殊指定⼯程,⼯程名即为当前⽬录名。⼯程的默认配置⽂件为 docker-compose.yml,可通过环境变量 COMPOSE_FILE或 -f 参数⾃定义配置⽂件,其定义了多个有依赖关系的服务及每个服务运⾏的容器。
2. 服务:⼀个⼯程中包含多个服务,每个服务中定义了容器运⾏的 镜像、参数、依赖等。⼀个服务中可包括多个容器实例。
3. 容器:被 docker-compose 管理或部署的容器集群,调⽤docker 服务提供的 API 来对容器进⾏管理,只要操作的平台⽀持 docker API,即可在其上进⾏ compose 的容器编排。

yaml注意事项

1. 不⽀持制表符 tab 键缩进,需要使⽤空格缩进。(但在实际操作中可以使用tab)
2. 通常开头缩进 2 个空格。
3. 字符后缩进 1 个空格,如:冒号,逗号,横杠。
4. ⽤ # 表示注释。
5. 如果包含特殊字符⽤单引号引起来。
6. 布尔值(true、false、yes、no、on、off)必须使⽤“”引号括起来,这样分析器会将它们解释为字符串。

docker compose命令选项

1. build:重新构建服务
2. ps:列出容器
3. up:启动所有docker-compose服务
4. up -d:启动所有docker-compose服务启动并后台运⾏
5. exec:进⼊容器实例内部
6. scale:指定⼀个服务器启动数量
7. top:显示容器进程
8. logs:查看容器输出⽇志
9. down:停⽌并删除容器、⽹络、卷、镜像
10. stop:停⽌服务
11. start:启动服务
12. restart:重启服务
13. config:检查配置
14. config -q:检查配置,有问题才有输出
15. --version:查看版本

docker-compose实例

新建一台机器(192.168.118.58)

1.安装pip,docker-compose

   12  yum -y install python2-pip
   17  pip install --upgrade pip==20.3  -i https://mirrors.aliyun.com/pypi/simple
   18  pip install docker-compose  -i https://mirrors.aliyun.com/pypi/simple
   19  pip list

2.安装docker,配置docker的相关内容
[root@docker3 test]# vi /usr/lib/systemd/system/docker.service 
[root@docker3 test]# systemctl daemon-reload
[root@docker3 test]# systemctl restart docker

3.创建yml文件,创建数据卷目录,启动compose集群

[root@docker3 ~]# mkdir test  # 创建⼀个⽬录,该⽬录是⼀个:(project)⼯程
[root@docker3 ~]# cd test
[root@docker3 test]# mkdir html  #创建数据卷目录
[root@docker3 test]# echo "我是被编排的nginx" > ./html/index.html  #创建索引文件
[root@docker3 test]# vi docker-compose.yml   #这⾥⽂件名称是固定不变的

version: "3"
services:
  nginx:
    container_name: c1
    image: "nginx:latest"
    ports:
    - "80:80"
    volumes:
    - /root/test/html/:/usr/share/nginx/html/   #挂载


[root@docker3 test]# ls
docker-compose.yml  html

# 启动⼯程后会根据指定的容器名称,⽣成对应的容器

[root@docker3 test]# docker compose up -d
WARN[0000] /root/test/docker-compose.yml: `version` is obsolete 
[+] Running 8/8
 ✔ nginx Pulled                                                 99.5s 
   ✔ e4fff0779e6d Pull complete                                 22.0s 
   ✔ 2a0cb278fd9f Pull complete                                 23.5s 
   ✔ 7045d6c32ae2 Pull complete                                 23.5s 
   ✔ 03de31afb035 Pull complete                                 23.5s 
   ✔ 0f17be8dcff2 Pull complete                                 23.5s 
   ✔ 14b7e5e8f394 Pull complete                                 23.5s 
   ✔ 23fa5a7b99a6 Pull complete                                 24.1s 
[+] Running 2/2
 ✔ Network test_default  Created                                 0.2s 
 ✔ Container c1          Started                                 0.4s 
[root@docker3 test]# systemctl stop firewalld
[root@docker3 test]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    5ef79149e0ec   2 weeks ago   188MB
[root@docker3 test]# docker ps --all
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                               NAMES
189bcd639c76   nginx:latest   "/docker-entrypoint.…"   16 minutes ago   Up 16 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   c1

4.在浏览器上访问:

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

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

相关文章

CC1链_全网最菜的分析思路

文章目录 1 你必须知道的点1.1 反序列化利用链的起点是readObject()方法1.2 回顾反射执行系统命令1.3 相关类の功能简单介绍1.3.1 InvokerTransformer类1.3.2 ChainedTransformer类1.3.3 ConstantTransformer类1.3.4 总结一下上述3个类调用transform()方法的不同 2 CC1链的环境…

嘴上说“摆烂”的90后,考了最多的PMP证书......

现在,“摆烂”一词经常被大家挂在嘴边,但真正能够安心摆烂的人却没多少,特别是承担着社会主要劳动力的90后们。 大部分90后都是嘴上说着摆烂,但该卷的时候还是得卷,特别是在考证这件事上! 一、PMP考生年龄…

缓存配置错误导致授权绕过

一个电子商务网站它有 2 个资产target.com admin.target.com target.com是面向用户的门户,用户可以去那里购买物品。admin.target.com基本上是卖家的管理门户,卖家可以在其中列出他们的物品,跟踪订单、客户信息等。 我通常使用 Autorize …

国产光耦合器的应用优势

国产光耦合器在近年来的技术发展中表现出了显著的应用优势,尤其是在电子和电力系统中。光耦合器作为一种广泛应用的电子元件,主要用于实现信号隔离、噪声抑制和电压转换等功能。随着国产品牌的不断崛起,国产光耦合器在性能、性价比以及供应链…

基于yolov8的8种人脸表情检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的人脸表情检测系统是一个结合了先进目标检测算法(YOLOv8)与深度学习技术的项目,旨在实时或离线地识别并分类人脸表情(如快乐、悲伤、愤怒、惊讶、恐惧、厌恶、中立等)。以下是一个简短的介绍…

四通道非洲猪瘟检测仪

四通道非洲猪瘟检测仪具有以下功能优势: 高效性能:四通道设计使得可以同时检测多个样本,大大提高了检测效率。这对于大规模养猪场或集中屠宰场来说尤为重要,可以快速筛查出可能感染非洲猪瘟的猪只。 高准确性:四通道检…

纯原生-如何在不破解情况下使用Android监听支付宝微信收款消息

具体思路: 首先支付宝微信收款均有到账通知,这是其app自带属性,也是为了提醒用户; 然后再规则范围内如何合理利用,在这里我们不说使用xposed这些工具,仅使用手机原生功能如何来做; 思路: 1、新建…

Python进阶06-Web服务器

零、文章目录 Python进阶06-Web服务器 1、HTTP协议 HTTP协议相关请参考HTTP协议详解网络相关内容请参考计算机网络详解 (1)HTTP协议 HTTP 协议的全称是(HyperText Transfer Protocol),翻译过来就是超文本传输协议。超文本是超级文本的缩…

图为科技闪耀双展,AI之星智领未来

图为科技同期闪耀2024AGIC深圳(国际)通用人工智能大会与深圳国际电子展,晋升AI领域新星。 人工智能爆炸时代,每一场科技盛会的召开都预示着行业的新风向与无限可能。 作为边缘计算与人工智能领域的佼佼者,图为科技携带前沿技术与创新产品&a…

UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!

前言 UI测试,也称为用户界面测试,是一种测试类型,旨在检查应用程序的界面是否工作正常,以及是否存在任何妨碍用户行为且不符合书面规格的BUG。UI自动化测试则是利用自动化工具来执行这些测试,以提高测试效率和准确性.…

【ubuntu使用笔记】使用timeshift备份ubuntu系统

使用timeshift备份ubuntu系统 安装timeshift sudo apt install timeshift建立备份点 sudo timeshift --create --comments "fist" --tags D查看备份点 sudo timeshift --list参考 三种Ubuntu系统全盘备份与恢复方法—tar、timeshift、systemback

linux访问github网速太慢 the remote end hung up unexpectedly问题

linux访问github网速太慢 the remote end hung up unexpectedly问题 pip install githttps://github.com/zhanghang1989/PyTorch-Encoding/时遇到fatal: the remote end hung up unexpectedly 原因 linux访问github网速太慢 措施: 确定ip: https://link.…

CRM 客户管理系统哪个好用?本篇盘点给你答案!

本文将盘点15款CRM客户管理系统,为企业选型提供参考 。 CRM 客户管理系统哪个好用?这是众多企业在发展过程中常常思考的问题。 CRM 客户管理系统就如同企业的得力助手,能把企业的客户资源管理得井井有条。对于企业来说,如果没有一…

【Mybatis】Mybatis-Plus 高级

1、关于插件 1.1、插件机制 MyBatis 允许你在已映射语句执⾏过程中的某⼀点进⾏拦截调⽤。默认情况下,MyBatis 允许使⽤插件来拦截的⽅法调⽤包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)Par…

vTESTstudio系列12--vTESTstudio中的动态函数库介绍2

在上期的文章(vTESTstudio系列11--vTESTstudio中的动态函数库介绍1)中,我们详细介绍了osek_tp.dll的接口,本章开始给大家介绍如何通过osek_tp.dll的接口去发送诊断指令,Let‘s Go!!! 目录 1. CanTp发送数据的函数&am…

插件千兆网络变压器72PIN应用图片和设计H87202D

华强盛电子导读:前面199中间2643后面0038 千兆4口网络变压器是一种常用于网络通信领域的电子元件,它可以将高频率的信号进行隔离和滤波,保护网络设备免受电磁干扰,同时也能确保信号的稳定传输。这种网络变压器通常具有多个端口&am…

使用tyarn下载依赖出现: 无法加载文件 D:\environment_software\nvm_node\tyarn.ps1,因为在此系统上禁止运行脚本。

使用tyarn下载依赖时出现: 无法加载文件 D:\environment_software\nvm_node\tyarn.ps1,因为在此系统上禁止运行脚本。 表示window不能执行ps1文件,可以通过设置命令运行执行ps1文件(PowerShell)。输入命令查看配置&am…

程序设计—智慧城市应急物资配送系统开发—车辆调度 项目源码36262

摘 要 在智慧城市建设的浪潮中,应急物资配送系统的车辆调度模块扮演着举足轻重的角色。该模块通过集成先进的信息技术和管理理念,实现了对配送地区、前置仓、车辆资源以及调度信息的全面管理和优化,从而确保在紧急情况下能够迅速、准确地将应…

自动生成文章的软件,提高你写文章的效率

对于每个写作人员而言,如果在写作中有一个工具可以协助提高工作效率,想必大家是都乐意接受的,那么今天小编就在本文中为大家分享一个好用的自动生成文章的软件,它可以在大家没有写作灵感时用来自动生成文章用,同时也可…

JVM中篇:字节码与类的加载篇-04-再谈类的加载器

笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 文章目录 1. 概述1.1. 大厂面试题1.2. 类加载器的分类1.3. 类加载器的必要性1.4. 命名空间1.5. 类加载机制的基本特征1.6. 类加载器之间的关系 2…