Kubernets基础组件 - Harbor 构建企业级Docker镜像仓库

Harbor 构建企业级Docker镜像仓库

1. 环境

[root@config1v etc]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           7.6G        743M        2.8G        2.8M        4.1G        6.6G
[root@config1v etc]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@config1v etc]# docker -v
Docker version 18.06.0-ce, build 0ffa825
[root@config1v etc]# docker-compose -v
docker-compose version 1.22.0, build f46880fe

2. 安装docker-compose + docker

安装docker

curl -fsSL https://get.docker.io | bash

安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3. 安装Harbor仓库

从github上面下载
Harbor下载地址
这里写图片描述

mkdir -p /application/harbor
tar zxvf harbor.tgz -C /application/harbor
cd harbor

可以看到Harbor的目录结构,关键的配置文件就只有:

[root@t4v harbor]# ls -l docker-compose.yml harbor.cfg
-rw-r--r-- 1 root root 3580 Aug  3 22:49 docker-compose.yml
-rw-r--r-- 1 root root 6682 Aug  3 23:02 harbor.cfg

修改harbor.cfg文件配置,主要修改的地方只有几处

hostname =10.210.27.229  
harbor_admin_password = cddh2018!@
  • hostname: 代表Harbor监听的地址,可以通过浏览器进行访问
  • harbor_admin_password: 初始化默认admin的登陆密码
    使用prepare生成配置文件
[root@t4v harbor]# ./prepare

使用docker-compose启动集群之前,先修改一下docker-compose的配置,Harbor默认是在80端口,因为服务器80端口被占用了。所以需要修改一下端口

proxy:
    image: vmware/nginx-photon:v1.5.1
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 7780:80
      - 444:443

启动Harbor,解压的时候默认有一个安装脚本

[root@t4v harbor]# ./install.sh

查看Harbor的状态

[root@t4v harbor]# docker-compose ps
       Name                     Command               State                     Ports
--------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up
harbor-db            /usr/local/bin/docker-entr ...   Up      3306/tcp
harbor-jobservice    /harbor/start.sh                 Up
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-ui            /harbor/start.sh                 Up
nginx                nginx -g daemon off;             Up      0.0.0.0:444->443/tcp, 0.0.0.0:7780->80/tcp
redis                docker-entrypoint.sh redis ...   Up      6379/tcp
registry             /entrypoint.sh serve /etc/ ...   Up      5000/tcp

可以通过IP+PORT的方式访问Harbor了
这里写图片描述
登陆的用户默认是:admin
初始密码:harbor.cfg文件中定义的
如果需要调整配置文件,修改后,那么就需要执行一遍

docker-compose down
./prepare
docker-compose up -d 

4. 使用Harbor

4.1 上传下载镜像

配置dockerhttp,因为安装的时候,没有选择的HTTPS,所以需要配置

[root@t4v harbor]# echo { "insecure-registries":["10.210.27.229:7780"] }>>/etc/docker/daemon.json
[root@t4v harbor]# systemctl reload docker 

登陆harbor仓库,docker login

[root@t4v harbor]# docker login 10.210.27.229:7780
Username (admin): admin
Password:
Login Succeeded

在本地上传一个镜像,这里我们在本地的一个centos镜像上传到仓库中

[root@t4v harbor]# docker images|grep centos
centos                             latest              49f7960eb7e4        8 weeks ago         200MB
# 首先给镜像打tag,tag的格式是固定的  【仓库地址】【项目名】【镜像名:TAG】
[root@t4v harbor]# docker tag centos:latest 10.210.27.229:7780/taiwei/centos:latest
[root@t4v harbor]# docker images |grep centos
10.210.27.229:7780/taiwei/centos   latest              49f7960eb7e4        8 weeks ago         200MB
# 将镜像推送到Harbor上面
[root@t4v harbor]# docker push 10.210.27.229:7780/taiwei/centos
The push refers to repository [10.210.27.229:7780/taiwei/centos]
bcc97fbfc9e1: Mounted from taiwei/taiwei
latest: digest: sha256:eed5b251b615d1e70b10bcec578d64e8aa839d2785c2ffd5424e472818c42755 size: 529

在界面上可以查看
这里写图片描述
确实上传到了Harbor仓库中了
在另外一台机器上面可以测试从Harbor下载我们上传的centos镜像

[root@config1v etc]# docker login 10.210.27.229:7780
Username: admin
Password:
Login Succeeded

如果这里一样出现类似HTTP请求docker的问题,使用下面的方法解决

echo { "insecure-registries":["10.210.27.229:7780"] }>>/etc/docker/daemon.json
systemctl reload docker 

使用docker pull将镜像下载下来

[root@config1v etc]# docker pull 10.210.27.229:7780/taiwei/centos
[root@config1v etc]# docker images |grep centos
10.210.27.229:7780/taiwei/centos   latest              49f7960eb7e4        8 weeks ago         200MB

只是Harbor的简单使用,还没有考虑到Harbor的高可用,和HTTPS的使用,以及使用域名代替IP

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值