Harbor 是什么?

harbor VMware 开发的一个容器镜像仓库,harbor的功能提供用户权限管理、镜像复制等功能,提高使用的registry的效率。

安装最新版的docker可以参考docker的官网

https://docs.docker.com/install/linux/docker-ce/centos/

一、安装docker

环境:centos7.5  2c2g

安装依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 安装源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo 查看docker版本 yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable 安装docker
sudo yum install docker-ce-18.06.3.ce-3.el7

 

二、配置docker 加速

安装好docker之后配置国内镜像拉取,配置的文件是 /etc/docker/daemon.json

这个文件刚开始的时候是没有的。需要手动创建。或者使用daocloud 上面配置

访问:https://www.daocloud.io/mirror  拉倒最下面

查看Docker加速器

Linux :curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

配置好了后重启docker

systemctl  daemon-reload
systemctl restart docker

 

三、配置harbor 镜像仓库

使用harbor镜像仓库的好处,图形化界面,方便管理。

安装harbor 我们需要 安装Docker Compose。

安装docker compose 我们还是参考docker官方文档 :https://docs.docker.com/compose/install/

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

下载harbor 安装包

访问:https://github.com/goharbor/harbor/releases
我们可以看到harbor的包有两种,一种是offline(离线安装),一种是online(在线安装)。我们选择离线安装。 wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz 解压
tar -zxf harbor-offline-installer-v1.7.4.tgz

  

解压完成后 进入harbor目录,我们只需要修改harbor.cfg文件中hostname,将reg.mydomain.com 换成你宿主机的IP地址

 sed -i s'/reg.mydomain.com/192.168.1.200/' harbor.cfg

执行
./prepare
执行成功后
./install.sh

  

安装完成后访问宿主机IP地址。

默认用户名密码是:admin   Harbor12345

配置docker镜像仓库

vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"], #镜像加速地址
"insecure-registries": ["192.168.1.200"], #docker镜像仓库地址
} 重启docker
systemctl daemon-reload
systemctl restart docker

测试

docker pull busybox

docker tag busybox:latest 192.168.1.200:80/library/busybox:v1

docker login 192.168.1.200:80  #登录Harbor镜像仓库

docker push 192.168.1.200:80/library/busybox:v1 #推送镜像到仓库

  

四、镜像安全

  harbor 如果放在公网上,一般都不要暴露使用默认端口,防止攻击。

  1、修改docker-compose.yml文件映射为1180端口:

  proxy:
image: goharbor/nginx-photon:v1.7.4
container_name: nginx
restart: always
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- NET_BIND_SERVICE
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
dns_search: .
ports:
- 1180:80
- 443:443
- 4443:4443
depends_on:
- postgresql
- registry
- core
- portal
- log

  

  只修改 docker-compose.yml文件 web页面访问正常,但docker login时,会出现问题  

[root@server ~]# docker login 192.168.1.200:1180
Username: admin
Password:
Error response from daemon: Get http://192.168.1。200:1180/v2/: unable to decode token response: invalid character 'A' looking for beginning of value

 2、修改common/templates/registry/config.yml 这个文件,将1180端口加入里面

vim common/templates/registry/config.yml

auth:
token:
issuer: harbor-token-issuer
realm: $public_url:1180/service/token
rootcertbundle: /etc/registry/root.crt
service: harbor-registry

  

 3、重启harbor

docker-compose stop
./install.sh

 4、修改/etc/docker/daemon.json

{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries": ["192.168.1.200:1180"]
}

  5、重启docker

systemctl daemon-reload
systemctl restart docker

  6、重新打tag,推送harbor

 

docker tag busybox:latest 192.168.1.200:1180/library/busybox:v1
docker login 192.168.1.200:1180
docker push 192.168.1.200:1180/library/busybox:v1 查看web界面是否有此镜像

  

docker18.ce harbor 安装的更多相关文章

  1. docker 私有镜像管理工具harbor 安装

    因为各种原因,官方的离线安装包下载比较费事,经常不成功,所以通过分部安装解决问题 1. docker yum install libdevmapper* -y -H tcp://0.0.0.0:237 ...

  2. (一)Harbor安装 -- 企业级Registry仓库

    根据Harbor官方描述: Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distri ...

  3. Docker CE 各安装方法

    1.Docker CE 镜像源站 使用官方安装脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.U ...

  4. Docker CE的安装 与镜像加速

    Docker CE 的安装与镜像加速 Docker CE是docker的开源版本 CENTOS 安装Docker CE 系统要求: 操作系统需要使用centos7() centos-extras库 必 ...

  5. Harbor安装 -- 企业级Registry仓库

    (一)Harbor安装 -- 企业级Registry仓库 以下文章转自http://www.jianshu.com/p/2ebadd9a323d 根据Harbor官方描述: Harbor是一个用于存储 ...

  6. docker CE 的安装

    一.Docker CE的安装1.先决条件运行环境:Ubuntu 64位或者其他支持Docker的64位系统运行配置,linux内核版本必须大于 3.10,否则会因为缺少容器运行所需的功能而出错. 2. ...

  7. Docker私服仓库Harbor安装

    Harbor安装那里还是很简单,就是在Docker Login那里掉坑里去了,搞半天,写博客的时候,又重新安装了一遍 1.准备两台服务器 centos7 harbor 10.19.46.15 clie ...

  8. docker 私有registry harbor安装

    一,harbor安装: 参考:Installation and Configuration Guide 1,安装docker 2,安装docker compose sudo curl -L " ...

  9. Centos7 docker、harbor 安装配置

    Docker 安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo wget ...

随机推荐

  1. web api中访问数据库的内存释放问题

    在使用web api开发微信后台的时候,本来想像MVC一样在controller中申明dbcontext全局变量,其它地方直接使用就可以了,结果调试过程中发现使用dbcontext访问数据库并获取qu ...

  2. http server 简单实现

    本blog主要是模仿http server的实现,使得客户端使用浏览器访问server所指定的目录. 当访问的为一个目录时, 则列出改目录下的所有文件 当访问的是文件时,则下载文件到本地 本log仅仅 ...

  3. Java中类的线程安全问题

    java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...

  4. C++ 中std::function 、std::bind的使用和lambda的使用

    std::function是可调用对象的包装器:std::bind是将可点用对象和其参数一起进行绑定,且绑定后的结果可以使用std::function对象进行保存,并延迟调用到需要调用的时候: 在C+ ...

  5. 存储过程TYPE类型参数调试

    当我们写完一段存储过程后,必然需要调试运行一下写的代码是否能成功运行,当参数是字符,数字或日期时,可以直接在测试窗口输入值.但是类型如果是定义好的TYPE,就无法简单的输入. 一.自定义TYPE TY ...

  6. 一起来看看JavaScript中==和===有何不同

    '; // => true 如果其中一个值是true,则将其转换为1再进行比较.如果其中一个值是false,则将其转换为0再进行比较: true == 0; // => false fal ...

  7. 01-MySql的前戏

    [转]01-MySql的前戏 MySql的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码root|123321 alex|1 ...

  8. PHP如何批量更新MYSQL中的数据

    最近项目需要用到批量更新数据库里的数据,在网上找了一下这方面的例子,觉得这个还不错,分享给大家. 在这个业务里里面涉及到了更新两张数据表,那么大家是不是会想到非常简单,马上上代码 $sql ,type ...

  9. 第三十天- 进程 Process模块 空间隔离

    1.进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体: ...

  10. 从零开始学习html(十二)CSS布局模型——下

    五.什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样, 每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧. ...