一、docker配置

  • 如果docker版本比较老,无法安装Harbor请卸载掉重装

1、卸载之前的docker包

yum list installed|grep docker

# 移除docker相关
yum remove docker-ce.x86_64

2、安装docker

# 安装yum管理工具
yum install -y yum-utils # 添加阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker
yum install docker-ce docker-ce-cli

3、设置开机自启docker并启动docker

# 启动docker
systemctl start docker # 设置开机启动
systemctl enable docker

4、查看docker版本

docker version

5、也可以将docker镜像仓库添加到/etc/docker/daemon.json文件中

vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

二、安装docker-compose

1、下载docker-compose文件

官网地址:https://get.daocloud.io/

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.0.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2、为docker-compose文件赋予可执行权限

chmod +x /usr/local/bin/docker-compose

3、查看docker-compose版本

docker-compose version

三、安装harbor

1、下载地址

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

2、解压文件

tar -zxvf harbor-offline-installer-v2.2.2.tgz

# 复制配置文件
cp harbor.yml.tmpl harbor.yml

3、修改harbor.yml配置

cd harbor
vim harbor.yml # 修改如下配置
hostname: 192.168.3.12
http:
port: 1180
harbor_admin_password: Harbor12345
  • hostname 这里设置本机的ip
  • harbor_admin_password 页面的密码
  • 注释掉https部分

4、修改daemon.json文件

  • 解决docker login 时,提示https问题
  • 添加insecure-registries
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.3.12:1180"]
}

5、运行/安装

# 创建日志目录,没有该目录无法创建,不知为何
mkdir /var/log/harbor ./install.sh

6、访问页面

http://192.168.3.12:1180

  • 帐号admin,密码Harbor12345

7、修改端口

  • 如果需要修改端口请按以下操作
vim harbor.yml
# 修改端口
http:
port: 1181 vim /etc/docker/daemon.json
"insecure-registries":["192.168.3.12:1181"] # 停止服务
docker-compose down # 重新编译
./prepare # 重新启动
docker-compose up -d # 重启docker服务
systemctl daemon-reload
systemctl restart docker

8、其它操作

# 停止
docker-compose stop # 运行
docker-compose start # 登录
docker login -uadmin -pHarbor12345 192.168.3.12:1180

四、管理harbor

# linux登录docker
docker login -uadmin -pHarbor12345 192.168.3.12:1180 # 拉取alpine镜像
docker pull alpine # 给镜像打标签,注意打标签的格式为 镜像仓库名称/项目名/镜像名:版本号
docker tag docker.io/alpine:latest 192.168.3.12:1180/library/alpine:v1.1.2 # 将镜像推送至harbor
docker push 192.168.3.12:1180/library/alpine:v1.1.2

五、springboot项目配置docker

1.创建Dockerfile文件

  • 在项目目录下创建该文件
# jdk版本
FROM java:8 # 临时文件目录
VOLUME /tmp # 把target目录下的jar包添加到容器里,并重命名为app.jar
ADD target/*.jar app.jar # ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 "/dev/urandom" 作为 Entropy Source.
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

2.修改pom.xml文件

方式一:使用maven里配置帐号密码

<properties>
<docker.repostory>192.168.3.12:1180</docker.repostory>
<docker.registry.name>library</docker.registry.name>
<docker.image.tag>v1.0.1</docker.image.tag>
<docker.maven.plugin.version>1.4.10</docker.maven.plugin.version>
</properties> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- Dockerfile maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<configuration>
<contextDirectory>${project.basedir}</contextDirectory>
<!-- harbor 仓库用户名及密码-->
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<repository>${docker.repostory}/${docker.registry.name}/${project.artifactId}</repository>
<tag>${docker.image.tag}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>

maven配置

<!--harbor-->
<server>
<id>192.168.3.12:1180</id>
<username>admin</username>
<password>Harbor12345</password>
</server>

方式二:直接在pom文件里配置帐号密码

<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<configuration>
<repository>${docker.repostory}/${docker.registry.name}/${project.artifactId}</repository>
<tag>${docker.image.tag}</tag>
<username>admin</username>
<password>Harbor12345</password>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>

六、linux服务器上打包并推送至harbor

1、将springboot项目源码复制到服务器

2、maven打包

  • 进入项目目录
mvn -U clean install -Dmaven.test.skip=true

3、打包成docker镜

mvn dockerfile:build

4、将docker镜像推送到Harbor仓库

mvn dockerfile:push

5、其它操作

# 查看镜像
docker images # 启动镜像
docker run -d --name rapid-web2 -p 8081:8089 192.168.3.12:1180/library/rapid-screen:v1.0.1

6、harbor上查看

七、参考

Harbor仓库搭建及使用的更多相关文章

  1. harbor 仓库搭建

    一,介绍 Harbor是一个用于存储Docker镜像的企业级Registry服务. Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry ...

  2. harbor仓库搭建

    harbor安装要求 harbor快速部署 下载harbor:https://github.com/goharbor/harbor/releases 这边以harbor-1.8.2为例 [root@g ...

  3. Jenkins+Harbor+Docker发布

    使用Jenkins发布Docke 需要准备的,docker,jenkins,Harbor docker安装 安装依赖: # yum install -y yum-utils device-mapper ...

  4. 搭建docker镜像仓库(二):使用harbor搭建本地镜像仓库

    目录 一.系统环境 二.前言 三.Harbor 四.使用harbor搭建私有镜像仓库 4.1 环境介绍 4.2 k8smaster节点安装配置harbor 4.2.1 安装harbor离线包 4.2. ...

  5. Harbor 企业级镜像仓库搭建

    Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角 ...

  6. Harbor私有仓库搭建

    1.安装docker yum install -y dockersystemctl start dockersystemctl enable docker 2.安装docker-compose 1.下 ...

  7. Harbor介绍与企业级私有Docker镜像仓库搭建

    Harbor介绍与安装部署,并实现通过http和https协议[自签发SSL证书]访问,客户端如何通过Harbor镜像仓库实现镜像的上传[推送]与下载[拉取]. Harbor介绍 Harbor,是一个 ...

  8. Harbor 镜像仓库搭建

    安装 Docker # 下载 Docker 二进制包 [root@k8s-master01 ~]# wget https://download.docker.com/linux/static/stab ...

  9. Harbor企业级私服Docker镜像仓库搭建及应用

    一.简介 Docker Hub作为Docker默认官方公共镜像,如果想要自己搭建私有镜像,Harbor是企业级镜像库非常好的选择. 所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭 ...

随机推荐

  1. CentOS8部署tftp

    tftp:简单文本传输协议,而ftp:文本传输协议.可以把tftp看成是ftp的精简版.tftp用于免登录传输小文件,tftp服务端监听在udp协议的69端口tftp简单的工作原理: tftp服务端与 ...

  2. 关于PHP数组Key的强制类型转换

    PHP是弱类型语言,就像JavaScript一样,在定义变量时,不需要强制指定变量的类型.同时,PHP又有着强大的数组功能,数组的Key即可以是普通的数字类型下标,也可以是字符串类型的Hash键值,那 ...

  3. 在PHP中如何为匿名函数指定this?

    在之前的文章中,我们已经学习过匿名函数的使用,没有看过的小伙伴可以进入传送门先去了解下闭包匿名函数的用法,传送:还不知道PHP有闭包?那你真OUT了. 关于闭包匿名函数,在JS中有个很典型的问题就是要 ...

  4. npm卸载appium,重新安装桌面版appium

    大家好,appium环境搭建的时候,我选的是使用npm安装appium,但我在使用过程中,发现这样安装的appium没有界面,都是需要通过命令行操作,对于我来说,有点吃力.最后,还是觉得初学就先用桌面 ...

  5. Navicat连接数据库成功,新建查询时提示错误“Cannot create file ……”

    Navicat连接数据库成功,新建查询时提示错误"Cannot create file --" 原因:编辑连接{高级}<设置位置>被修改,该oci.dll不正确 解决方 ...

  6. PyCharm插件开发实践-PyGetterAndSetter

    背景需求 在面向对象的设计中,典型如Java语言,为了控制对象属性的修改入口,我们常用的做法是把属性设置为private,然后通过getter和setter方法访问.修改该属性. 但是在Pthon语言 ...

  7. 【深度学习】softmax回归——原理、one-hot编码、结构和运算、交叉熵损失

    1. softmax回归是分类问题 回归(Regression)是用于预测某个值为"多少"的问题,如房屋的价格.患者住院的天数等. 分类(Classification)不是问&qu ...

  8. BootstrapBlazor 模板安装

    原文地址:https://www.cnblogs.com/ysmc/p/15400270.html Bootstrap Blazor Project Template 为方便大家的使用,Bootstr ...

  9. MySQL的详细讲解

    目录 Mysql的架构与历史 MySQL的逻辑架构 更新中---- Mysql的架构与历史 MySQL的逻辑架构 第二层的架构是所有的跨引擎的功能实现的地方,例如:存储,触发器,视图等. 第三层半酣了 ...

  10. 洛谷2151[SDOI2009]HH去散步(dp+矩阵乘法优化)

    一道良好的矩阵乘法优化\(dp\)的题. 首先,一个比较\(naive\)的想法. 我们定义\(dp[i][j]\)表示已经走了\(i\)步,当前在点\(j\)的方案数. 由于题目中限制了不能立即走之 ...