harbor部署+docker-compose

harbor部署

harbor介绍

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

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

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

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

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

步骤

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

修改主机地址,注释掉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

注意事项:

要在 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: c1image: "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.rhkb.cn/news/411800.html

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

相关文章

用python启动nacos和redis

import subprocess import tkinter as tk from tkinter import ttk, messagebox from subprocess import Popen, run, PIPE# 启动Nacos的函数 def start_nacos():startup_cmd_path rD:\environment\code-software\nacos-server-1.4.1\nacos\bin\startup.cmd# 异步启动NacosPop…

Python 和 PyCharm 安装(傻瓜式)

为什么要安装Python? 当我们写 python 代码的时候,需要有环境的支持,才可以运行代码。而 python 的安装支持了两个主要部分,分别是解释器和标准库。当我们安装完成,就可以使用python里面的标准库来写代码,而…

Nginx - 反向代理、缓存详解

概述 本篇博客对配置Nginx的第二篇,主要介绍Nginx设置反向代理、缓存、和负载均衡三个知识点,在之前的生产实践中遇到的问题进行归纳和总结,分享出来,以方便同学们有更好的成长。 Nginx 核心参数配置 在写Nginx反向代理时&…

Kafka的Offset(偏移量)详解

Kafka的Offset详解 1、生产者Offset2、消费者Offset2.1、消费者2.2、生产者2.3、实体类对象2.4、JSON工具类2.5、项目配置文件2.6、测试类2.7、测试2.8、总结 1、生产者Offset 2、消费者Offset 2.1、消费者 package com.power.consumer;import org.apache.kafka.clients.consu…

nexus 清理 docker 镜像

下载配置 nexus-cli 看网上文档都用如下地址,但现在已经不能下载: wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli chmod x nexus-cli 在 github 上下载: wget https://github.com/heyonggs/nexus-cli/r…

跟李沐学AI:转置卷积

定义 卷积不会增大输入的高宽,通常卷积层后高宽不变或减半。转置卷积则可以用来增大输入的宽高。 转置卷积是一种卷积,它将输入和核进行了重新排列,通常用作上采用。 如果卷积将输入从变为,同样超参数的情况下,转置…

Java中三大容器类(List、Set、Map)详解

三大容器介绍 名称结构特点常见实现类List(列表)由有序的元素序列组成,可以包含重复元素可以通过索引访问元素,插入的顺序与遍历顺序一致ArrayList、LinkedList、VectorMap(映射)由键值对(Key-Value)组成的…

SpringBoot项目中mybatis执行sql很慢的排查改造过程(Interceptor插件、fetchSize、隐式转换等)

刚入职公司,就发现公司项目跑sql特别慢,差不多一万条数据插入到数据库要5秒以上(没有听错,就是这个速度),查询修改删除也是特别慢。直到22年年底实在是受不了了,我就去排查了一下。 用的是Oracl…

OpenCV小练习:身份证号码识别

目标:针对一张身份证照片,把身份证号码识别出来(转成数字或字符串)。 实现思路:需要将目标拆分成两个子任务:(1) 把身份证号码区域从整张图片中检测/裁剪出来;(2) 将图片中的数字转化成文字。第…

Ubuntu 22.04上稳定安装与配置搜狗输入法详细教程

摘要:本教程详细介绍了如何在Ubuntu 22.04上安装和配置搜狗输入法,每个步骤详细配图。由于在Ubuntu 24.04上存在兼容性问题,建议用户继续使用稳定的22.04版本。教程涵盖了从更新系统源、安装fcitx输入法框架,到下载和配置搜狗输入…

存储实验:基于华为存储实现存储双活(HyperMetro特性)

目录 什么是存储双活仲裁机制 实验需求实验拓扑实验环境实验步骤1. 双活存储存储初始化(OceanStor v3 模拟器)1.1开机,设置密码1.2登录DM,修改设备名、系统时间和导入License1.3 设置接口IP 2. 仲裁服务器配置(Centos7…

全局点云配准的新思考:没有良好初值时如何配准?

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:BiEquiFormer: Bi-Equivariant Representations for Global Point Cloud Registration 作者:Stefanos Pertigkiozoglou*, Evangelos Chatzipantazis∗ and K…

【循环顺序队的实现】

1.队列的逻辑结构 与 抽象数据类型定义 先进先出的线性表 在顺序队列中,我们使用头指针front指向队首元素;用尾指针rear指向队尾元素的下一个位置(当然这里的指针是用下标模拟出来的) 同时顺序队列中的元素当然是用数组来存储的 …

解决STM32使用J-Link可以擦除和读取但是无法烧录问题

现象 使用J-Link烧录模组固件,出现可以读取和擦除,但是无法烧录问题,提示错误如下: ERROR: Programming failed address 0x08000080 (program error)End of flash programmingERROR: Program failed 读出来的时候这个地址数据…

Linux 软件包管理器yum 自动化构建工具-make/makefile

Linux 工具 linux 软件包管理器 yum 把一些常用的软件提前编译好,做成软件包放在一个服务器上,通过包管理器可以很方便的获取到在这个编译好的软件包。直接进行安装。 软件包和软件包管理器就相当于 App 和应用商店这样的关系。 Linux 安装软件 源代码…

poe供电原理以及应用

1,根据IEEE802.3af标准,一个完整的PoE系统包括供电端设备PSE和受电端设备PD两部分; 供电设备PSE是整个系统的电源提供者,为PD设备提供直流电源,其可分为M

如何理解进程

一、进程的概念 进程:顾名思义,就是一个完整执行程序的过程。没错,就是这么简单,但是在程序执行的过程之中,系统会为这个执行的程序分配内存资源,这些过程也包含在进程当中。 进程是动态的,是程…

【网络编程通关之路】 Tcp 基础回显服务器(Java实现)及保姆式知识原理详解 ! ! !

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

Linux下IO多路复用—select,poll,epoll

一.概述 1.IO多路复用介绍 IO多路复用是一种操作系统的技术,用于在单个线程或进程中管理多个输入输出操作。它的主要目的是通过将多个IO操作合并到一个系统调用中来提高系统的性能和资源利用率,避免了传统的多线程或多进程模型中因为阻塞IO而导致的资源…

在Linux下搭建go环境

下载go go官网:All releases - The Go Programming Language 我们可以吧压缩包下载到Windows上再传到Linux上,也可以直接web下载: wget https://golang.google.cn/dl/go1.23.0.linux-amd64.tar.gz 解压 使用命令解压: tar -x…