Docker私有仓库harbor

Harbor私有仓库介绍


Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

官网:TP

Harbor部署


# 1.安装docker-compose
[root@db01 ~]$ yum install -y docker-compose # 2.检查是否安装成功
[root@db01 ~]$ docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017 # 3.下载harbor安装包
[root@db01 ~]$ wget https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz # 4.解压
[root@db01 ~]$ tar xf harbor-offline-installer-v1.9.0-rc1.tgz # 5.修改配置文件
[root@db01 harbor]$ vim /root/harbor/harbor.yml
hostname: 10.0.0.51
harbor_admin_password: 123 # 6.安装harbor
[root@db01 harbor]$ ll
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5790 Nov 18 09:48 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare [root@db01 harbor]$ ./install.sh [root@db01 /tmp/harbor]$ ll
drwxr-xr-x 3 root root 20 Nov 18 09:49 common
-rw-r--r-- 1 root root 5285 Nov 18 09:49 docker-compose.yml
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5790 Nov 18 09:48 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare

打开电饭煲访问:http://10.0.0.51/

harbor页面不显示排错思路

1、查看日志,是否正常

2、如果日志正常,使用curl命令,是否能获取到harbor网页,

3、如果能获取到harbor网页,则证明docker启动harbor没有问题

4、宿主机到浏览器是不通的,使用telnet验证80端口是否通

5、如果不通,查看宿主机防火墙、selinux、内核转发是否开启

Harbor的使用


# harbor的启停
[root@db01 ~]$ cd harbor/
[root@db01 harbor]$ docker-compose stop
[root@db01 harbor]$ docker-compose start
[root@db01 harbor]$ docker-compose restart # 上传镜像到harbor
需要修改镜像名称
## 命名规则:
## harbor地址/项目名称/镜像名称:标签 10.0.0.51/guanwang/centos7:v2 # docker修改镜像名称
## docker tag :重命名镜像,类似于cp,原镜像还在
[root@db01 ~]$ docker tag centos:7 centos7:v1
[root@db01 ~]$ docker tag centos:7 10.0.0.51/guanwang/centos7:v2 # 修改docker配置文件
{
"bip": "192.168.200.1/24",
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"] # //添加harbor网页
} # 重启docker
[root@db01 harbor]$ systemctl restart docker # 登录harbor
[root@db01 harbor]$ docker login 10.0.0.51
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-store
Login Succeeded # 推送镜像,必须先在harbor上面创建对应项目
[root@db01 harbor]$ docker push 10.0.0.51/guanwang/centos7:v2

Harbor拉镜像


# 1.修改配置文件
[root@db02 ~]$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"] # //添加harbor页面uri
} # 2.重启docker
[root@db02 ~]$ systemctl restart docker # 3.登录harbor认证
[root@db02 ~]$ docker login 10.0.0.51
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-store
Login Succeeded # 4.拉取镜像
[root@db02 ~]$ docker pull 10.0.0.51/guanwang/centos7:v2
v2: Pulling from guanwang/centos7
Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Status: Downloaded newer image for 10.0.0.51/guanwang/centos7:v2
10.0.0.51/guanwang/centos7:v2 [root@db02 ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.0.0.51/guanwang/centos7 v2 eeb6ee3f44bd 2 months ago 204MB

自制镜像推送到Harbor


自动构建wordpress镜像

harbor创建对应项目

  • MySQL镜像
# 拉取纯净版MySQL镜像
[root@db01 ~]$ docker pull mysql:5.7 # 修改MySQL镜像名称
[root@db01 ~]$ docker tag mysql:5.7 10.0.0.51/blog/wordpress_mysql:v1 # 推送镜像到 Harbor
[root@db01 ~]$ docker push 10.0.0.51/blog/wordpress_mysql:v1
  • centos7镜像
# 拉取纯净版sentos7镜像
[root@db01 ~]$ docker pull sentos:7 # 工作目录下准备好需要的代码包、配置文件、脚本...
[root@db01 /Dockerfile/wordpress]$ ll
total 35264
-rw-r--r-- 1 root root 19674604 Aug 18 12:13 php.tgz
-rw-r--r-- 1 root root 256 Nov 16 19:56 proxy_params
-rw-r--r-- 1 root root 100 Nov 18 11:15 start.sh
-rw-r--r-- 1 root root 386 Nov 16 19:51 wordpress.conf
-rw-r--r-- 1 root root 16414590 Aug 28 16:21 wordpress.tgz
[root@db01 /Dockerfile/wordpress]$ vim wordpress.conf
server {
listen 80;
server_name blog.wj.com;
root /code/wordpress; location / {
index index.php index.html;
} location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
} # 编写Dockerfile
[root@db01 /Dockerfile/wordpress]$ vim Dockerfile
FROM centos:7
ADD php.tgz /opt
RUN rm -fr /etc/yum.repos.d/* \
&& curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo \
&& curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \
&& sed -i '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
&& sed -i '/mirrors.cloud.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
&& yum install -y nginx \
&& yum localinstall -y /opt/*.rpm \
&& sed -i 's#user = apache#user = nginx#g' /etc/php-fpm.d/www.conf \
&& sed -i 's#group = apache#group = nginx#g' /etc/php-fpm.d/www.conf \
&& mkdir /code
COPY wordpress.conf /etc/nginx/conf.d/wordpress.conf
COPY proxy_params /etc/nginx/proxy_params
COPY start.sh /start.sh
ADD wordpress.tgz /code/
RUN chown -R nginx.nginx /code \
&& rm -rf /code/wordpress/wp-config.php \
&& rm -rf /opt/* \
&& yum clean all
EXPOSE 80
EXPOSE 9000
CMD ["/bin/sh","/start.sh"] # 自动构建镜像
[root@db01 /Dockerfile/wordpress]$ docker build -t nginx_php:v1 . # //如果要推送harbor,就需要改名
[root@db01 /Dockerfile/wordpress]$ docker build -t 10.0.0.51/blog/wordpress:v1 . # //推荐直接使用harbor格式镜像名称 [root@db01 /Dockerfile/wordpress]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.0.0.51/blog/wordpress v1 1d0f94af80ae About a minute ago 721MB
10.0.0.51/blog/wordpress_mysql v1 8b43c6af2ad0 25 hours ago 448MB # 推送镜像至harbor
[root@db01 /Dockerfile/wordpress]$ docker push 10.0.0.51/blog/wordpress:v1

部署项目

### 部署项目
## 创建MySQL的数据目录
[root@db02 ~]$ mkdir /data/mysql/data -p ## 创建wordpress用户数据存储目录
[root@db02 ~]$ mkdir /data/worepress/data -p ## 从harbor拉取代码准备工作
# 1.修改docker配置文件并重启
[root@db02 ~]$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"]
} [root@db02 ~]$ systemctl restart docker # 2.登录harbor认证用户
[root@db02 ~]$ docker login 10.0.0.51 ===================================================================================================================
## 启动MySQL,自动拉取harbor镜像
docker run \
--name wordpress-mysql \
-p 3306:3306 \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=123 \
-d 10.0.0.51/blog/wordpress_mysql:v1 \
--character-set-server=utf8 \
--collation-server=utf8_general_ci ## 启动nginx、php,自动拉取harbor镜像
docker run \
--name wordpress-nginx-php \
--link wordpress-mysql \
-p 80:80 \
-d 10.0.0.51/blog/wordpress:v1 ## 检查端口
[root@db02 ~]$ netstat -lntup|grep docker
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 35026/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 35310/docker-proxy
tcp6 0 0 :::3306 :::* LISTEN 35030/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 35314/docker-proxy

本地做域名解析:10.0.0.51 blog.xxx.com

访问blog.xxx.com

Docker私有仓库harbor的更多相关文章

  1. docker 私有仓库 harbor docker-compose

    c创建docker私有仓库 docker pull registry:2.1.1 mkdir /opt/registry#mkdir /var/lib/registry docker run -d - ...

  2. 物联网架构成长之路(44)-Docker私有仓库Harbor

    0. 前言 安装docker.docker-compose,这些在我以前的博客讲过,这里就不继续说明了,有需要的可以参考我之前的博客. https://www.cnblogs.com/wunaozai ...

  3. 企业级Docker私有仓库Harbor

    一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docke ...

  4. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    ❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...

  5. Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

    Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限.基于镜像的复 ...

  6. Docker私有仓库Harbor部署与使用

    一.harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 由下面几个组件组成: proxy:nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载 ...

  7. docker私有仓库-harbor

    简单说一下Harbor的部署,踩了几个坑,参考同事大神的配置文件,一脸懵逼的部署出来了,其中部分内容参考了网上一些大神的文档,本篇文章仅供参考学习,如有雷同,万分荣幸. 这篇文档仅限于centos7参 ...

  8. 菜鸟系列docker——搭建私有仓库harbor(6)

    docker 搭建私有仓库harbor 1. 准备条件 安装docker sudo yum update sudo yum install -y yum-utils device-mapper-per ...

  9. Docker私有仓库与Harbor部署使用

    Docker私有仓库与Harbor部署使用 目录 Docker私有仓库与Harbor部署使用 一.本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 ...

  10. docker开源仓库Harbor部署笔记

    Harbor介绍Harbor是Vmvare团队开发的开源企业级registry仓库,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务.项目地址:ht ...

随机推荐

  1. java中取数组第一个元素

    java中取数组第一个元素   var a=[1,2,2,3,4];console.log(a);a.shift();console.log(a);   pop:删除原数组最后一项,并返回删除元素的值 ...

  2. python计算三角形的三个边的边长,首先计算两个坐标点的距离

    # -*- coding:utf-8 -*- """ @author: 14931 @file: trianglearea.py @time: 2023/02/14 @d ...

  3. Celery框架从入门到精通

    目录 Celery介绍.安装.基本使用 一.Celery服务 1.celery架构 2.celery快速使用 二.Celer包结构 1.创建clery包结构 2.Celery执行异步任务.延迟任务.定 ...

  4. GO语言学习笔记-反射篇 Study for Go ! Chapter nine - Reflect

    持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...

  5. Python学习笔记--异常+模块+包

    异常的捕获 基本语法: 示例: 捕获指定异常 基本语法:--必写 示例: 捕获多个异常 示例: 捕获所有异常 示例: 异常else--可写可不写 示例: 异常finally(无论是否出现异常,都会去执 ...

  6. TypeScript 学习笔记 — infer 类型推导、类型兼容 (九)

    目录 1.ReturnType 返回值类型 2.Parameters 参数类型 3.InstanceType 实例类型 4.ConstructorParameters 构造函数参数类型 5.infer ...

  7. 一起来试玩!在线可编程交互的实时音视频 Web SDK 入门教程

    在与开发者长期的沟通中,我们发现,尽管声网为开发者提供了丰富翔实的 SDK 技术文档,但对于初次接触声网 SDK 的开发者来说,在第一眼看到文档的时候,可能会被大量新概念和复杂的 API 接口淹没.S ...

  8. 基于 HLS 创建 Golang 视频流服务器

    HLS 是 HTTP Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流媒体传输协议, 并于 2009 年. HLS 流媒体已经成为应用最广泛的实时视频协议.它是一 ...

  9. 【读书笔记】组合计数-Tilings-正文 学一半的笔记

    Tilings-正文部分 目录 9.2 转移函数方法 例子 补充 9.3 其余的方法 9.3.1 the path method 9.3.2 The permanent-determinant and ...

  10. Docke 使用与详解1 --Tomcat

    一.Docker容器案例使用 --Tomcat安装与使用 1.Tomcat 安装 --docker tomcat镜像官网 1>使用docker pull tomcat拉取镜像,默认拉取最新版本: ...