离线手动部署docker镜像仓库——harbor仓库(HTTPS)
实验环境:
harbor服务器系统:CentOS Linux release 7.5.1804 (Core)
harbor服务器IP:10.1.12.114
harbor版本:v1.5.0
docker版本:17.05.0-ce
另外为了测试pull镜像,使用了另一台test机器:10.200.22.8
GitHub地址:https://github.com/goharbor/harbor
部署过程:
1、下载安装包
下载地址:http://harbor.orientsoft.cn/
cd /data && wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
2、上传并解压安装包
将下载下来的安装包解压到服务器的/usr/local目录
[root@devopsdb1 soft]# tar -xzvf harbor-offline-installer-v1.5.0.tgz -C /usr/local/
[root@devopsdb1 local]# cd /usr/local/harbor/
[root@devopsdb1 harbor]# ll
total 854960
drwxr-xr-x 3 root root 23 Feb 26 13:01 common
-rw-r--r-- 1 root root 1185 May 2 2018 docker-compose.clair.yml
-rw-r--r-- 1 root root 1725 May 2 2018 docker-compose.notary.yml
-rw-r--r-- 1 root root 3596 May 2 2018 docker-compose.yml
drwxr-xr-x 3 root root 156 May 2 2018 ha
-rw-r--r-- 1 root root 6687 May 2 2018 harbor.cfg
-rw-r--r-- 1 root root 875401338 May 2 2018 harbor.v1.5.0.tar.gz
-rwxr-xr-x 1 root root 5773 May 2 2018 install.sh
-rw-r--r-- 1 root root 10771 May 2 2018 LICENSE
-rw-r--r-- 1 root root 482 May 2 2018 NOTICE
-rwxr-xr-x 1 root root 27379 May 2 2018 prepare
3、配置harbor和docker修改配置(重点)
3.1 编辑/usr/local/habor/harbor.cfg,主要修改两个地方:
80(HTTP) and 443(HTTPS)
3.2 SSL证书配置
官网配置说明:
https://github.com/vmware/harbor/blob/master/docs/configure_https.md
#签发根证书
[root@devopsdb1 harbor]# mkdir -p /data/cert && cd /data/cert #创建证书存放目录
[root@devopsdb1 harbor]# openssl genrsa -out ca.key 2048 #生成根证书私钥(无加密)
[root@devopsdb1 harbor]# openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj "/CN=Harbor-ca" #创建自己的CA证书(不使用第三方权威机构的CA来认证,自己充当CA的角色)
req 产生证书签发申请命令
-x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
-new 生成证书请求-key 指定私钥文件-nodes 表示私钥不加密
-out 输出-subj 指定用户信息 -days 有效期
[root@devopsdb1 harbor]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout server.key -out server.csr #生成服务器端私钥和CSR签名请求 #签发服务器证书
[root@devopsdb1 harbor]# echo subjectAltName = IP:10.1.12.114 > extfile.cnf
[root@devopsdb1 harbor]# openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -extfile extfile.cnf -out server.crt
x509 签发X.509格式证书命令。
-req 表示证书输入请求。
-days 表示有效天数 -extensions 表示按OpenSSL配置文件v3_req项添加扩展。
-CA 表示CA证书,这里为ca.crt
-CAkey 表示CA证书密钥,这里为ca.key
-CAcreateserial表示创建CA证书序列号
-extfile 指定文件
#设置docker证书
# 如果如下目录不存在,请创建,如果有域名请按此格式依次创建
[root@devopsdb1 cert]# mkdir -p /etc/docker/certs.d/10.1.12.114
# 如果端口为443,则不需要指定。如果为自定义端口,请指定端口
# /etc/docker/certs.d/yourdomain.com:port # 将ca根证书依次复制到上述创建的目录中
[root@devopsdb1 cert]# cp /data/cert/ca.crt /etc/docker/certs.d/10.1.12.114/
[root@devopsdb1 cert]# cp server.crt server.key /etc/pki/ca-trust/source/anchors/
[root@devopsdb1 cert]# mkdir -p /etc/ssl/harbor/
[root@devopsdb1 cert]# cp /data/cert/server.crt /etc/ssl/harbor/
[root@devopsdb1 cert]# cp /data/cert/server.key /etc/ssl/harbor/
3.3 重启docker服务:
[root@devopsdb1 cert]# update-ca-trust enable
[root@devopsdb1 cert]# update-ca-trust extract
[root@devopsdb1 cert]# systemctl daemon-reload #踩过的坑证明,这一步最好不要忘了,不然即使重启了docker,配置文件有可能也会不生效,导致各种奇怪的问题
[root@devopsdb1 cert]# systemctl restart docker
4、安装docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose 或者
yum -y install docker-compose
5、 执行install.sh脚本,安装harbor仓库
[root@devopsdb1 harbor]# docker-compose up -d
离线安装docker-compose和执行install.sh的注意事项都在《离线手动部署docker镜像仓库——harbor仓库(一)》里面说过,就不赘述了。
6、检查部署是否OK
6.1 检查容器启动状况,已经全部OK,默认使用443端口:
6.2 界面访问(加上1180端口哦):
7、测试使用
7.1 登录后创建一个data项目:
7.2 创建测试镜像并推送到仓库(这里也要带上端口号哟):
[root@devopsdb1 cert]# docker tag 10.1.12.114:5000/eiki/archer:v2.0 10.1.12.114/data/eiki/archer:v2.0
[root@devopsdb1 cert]# docker push 10.1.12.114/data/eiki/archer:v2.0
7.3 查看仓库,镜像已经存在(登录账号:admin / Harbor12345)
7.4 复制pull命令,在test机器上测试pull命令:
[root@www anchors]# docker pull 10.1.12.114/data/eiki/archer:v2.0
The push refers to a repository [10.1.12.114/data/eiki/archer]
af0b15c8625b: Pushed
v2.0: digest: sha256:aea2c7bc314d5015556c3725dbcb66c739d9d7acc6df0681368d1b9aae3c9cd9 size: 524
=============下面的操作在test机器上进行=============
1、传递CA认证信息到test库:
cd /data/cert/ && scp ca.crt 10.200.22.8:/etc/pki/ca-trust/source/anchors/
cd /data/cert/ && scp server.crt 10.200.22.8:/etc/pki/ca-trust/source/anchors/
2、重启test的docker服务:
update-ca-trust enable
update-ca-trust extract
systemctl restart docker
3.、登录:
[root@www anchors]# docker login 10.1.12.114
Username (admin): admin
Password:
Login Succeeded
4、在test机器上测试pull镜像:
[root@www anchors]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
eiki/archer latest de9c6958d8e4 4 days ago 1.8GB
centos 7 1e1148e4cc2c 2 months ago 202MB
[root@www anchors]# docker pull 10.1.12.114/data/hello-world:v12
v12: Pulling from data/hello-world
3f9a4cb51977: Pull complete
Digest: sha256:aea2c7bc314d5015556c3725dbcb66c739d9d7acc6df0681368d1b9aae3c9cd9
Status: Downloaded newer image for 10.1.12.114/data/hello-world:v12
[root@www anchors]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
eiki/archer latest de9c6958d8e4 4 days ago 1.8GB
10.1.12.114/data/hello-world v12 fce289e99eb9 8 weeks ago 1.84kB
centos 7 1e1148e4cc2c 2 months ago 202MB
[root@www anchors]#
至此,harbor仓库就部署好了。
参考来源:
https://blog.51cto.com/10950710/2152638
https://blog.51cto.com/10950710/2153086
https://blog.51cto.com/10950710/2301257
离线手动部署docker镜像仓库——harbor仓库(HTTPS)的更多相关文章
- [Docker]Docker拉取,上传镜像到Harbor仓库
需求 因为项目的需求,需要制作一个基于tomcat的镜像.那么前提就是,需要有tomcat的基础镜像. 怎么做 我的思路跑偏了,本来以为是需要将tomcat下载下来,然后通过docker命令,让它成为 ...
- 用其他主机docker login登录Harbor仓库报错
做微服务的时候,我准备把编译好的jar包,部署到我的Harbor仓库上,却登录不上去,出现以下报错: [root@k8s-master ~]# docker login 192.168.30.24Us ...
- 手动制作Docker镜像
手动制作 Docker 镜像 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器(用来用去感觉 Windows 的 Docker 出各种问题,比如使用 ...
- 部署docker镜像仓库及高可用
下载地址: https://github.com/goharbor/harbor/releases 安装harbor服务器: 安装harbor root@harbor-vm1:/usr/loc ...
- 使用Gitlab的CI/CD功能自动化推送docker镜像到Nexus仓库出现的问题
在服务器中可以直接使用命令行登录,推送docker镜像等 但是在使用Gitlab的CI/CD功能中,gitlab-ci.yml文件执行过程中出现如下错误: 原因分析: 服务器上之前使用命令行登陆过Ne ...
- Docker: vmware企业级docker镜像私服--Harbor的搭建
1.下载harbor,地址https://github.com/vmware/harbor2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息 ...
- linux如何离线加载docker镜像?
1. 在已经部署了镜像的机器上获取镜像 1.1 获取镜像名 docker images 1.2 打包选中对应的镜像 docker save <image_name> -o <imag ...
- linux部署docker镜像
安装git yum install git 生成ssh秘钥 cat ~/.ssh/id_rsa.pub //查看是否有秘钥 ssh-keygen -t rsa -C "" //生成 ...
- 创建docker镜像的私有仓库
CentOS Linux release 7.2.1511 Docker version 17.03.1-ce 安装registry镜像 同时安装一个比较小的镜像alpine待会作测试用: # doc ...
随机推荐
- Spring - AOP简介与图示
[1]AOP (Aspect-Oriented Programming, 面向切面编程),是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象编程) ...
- 完美解决win10家庭版本系统无法远程连接问题
版权声明:本文转载.原文: https://blog.csdn.net/rainmaple20186/article/details/80913191 近期接入同一局域网的服务器,发现在连接的时候,报 ...
- 数学paper写作注意事项
[转载请注明出处]http://www.cnblogs.com/mashiqi 2019/03/20 Introduction一定要好好写,写好后要至少读一遍,保证流畅.editor会读introdu ...
- RxJS核心概念之Subjet在angular2+上的应用
Subject,在RxJS中是一类特殊的Observable(可观察对象),它可像多个Observer(观察者)推送值.每一个Subject也可以作为Observer(观察者) Subject同样也是 ...
- python 12
#! /usr/bin/python a = 1 b = [2, 3] def func(): a = 2 print("in func a:", a) b[0] = 1 prin ...
- Java基于opencv实现图像数字识别(五)—投影法分割字符
Java基于opencv实现图像数字识别(五)-投影法分割字符 水平投影法 1.水平投影法就是先用一个数组统计出图像每行黑色像素点的个数(二值化的图像): 2.选出一个最优的阀值,根据比这个阀值大或小 ...
- fdsafdsafds
name1 = input('请输入一个名字:') name2 = input('请输入一个名字: ') animal = input('请输入一个名字 :') print('刚按完摩的{}出门看见{ ...
- a链接中 JS弹出确认对话框方法
一种: <a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹 ...
- 理解java容器:iterator与collection,容器的起源
关于容器 iterator与collection:容器的起源 iterator的简要介绍 iterable<T> iterator<T> 关于remove方法 Collecti ...
- JavaScript调用上下文(第九天)
call与apply用法 使用哪个对象去调用相应的方法: var name="window"; var obj={ name:"obj" } function ...