Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor
Docker介绍及环境搭建参考:
Docker系列一: docker介绍&&安装(含离线安装)
Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor
Docker系列(三):Idea使用docker打包和发布springboot项目
目录
一、使用Nexus作为镜像仓库
(一)、使用docker安装nexus
①拉取nexus镜像
②启动nexus
③查看启动日志
④访问Nexus
⑤修改admin默认密码
(二)、nexus配置docker镜像仓库
①创建docker-hosted仓库
②docker登陆到nexus仓库
③测试从nexus仓库推送和拉取镜像
二、使用Harbor作为镜像仓库
(一)、安装Harbor
①安装docker-compose
②:安装Harbor
③配置https
④修改harbor配置
⑤执行安装
⑥访问Harbor
(二)配置Harbor为镜像仓库
①配置harbor所在主机的host
②创建docker证书目录
③复制客户端证书
④docker添加信任仓库地址
⑤docker登录到harbor
⑥测试harbor拉取和推送镜像
⑦其他
一、使用Nexus作为镜像仓库
(一)、使用docker安装nexus
①拉取nexus镜像
docker pull sonatype/nexus3
②启动nexus
docker run -d --name nexus3 --restart=always -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -v /opt/nexus-data:/var/nexus-data sonatype/nexus3
③查看启动日志
docker logs -f nexus3
当看到如下启动日志,即表示启动成功
④访问Nexus
直接访问 服务器ip:8081 即可
如图所示,首次点击登陆提示了admin的密码存放在/nexus-data/admin.password文件中
此文件是docker容器中文件,所以进入nexus容器中
⑤修改admin默认密码
(1)查看docker已启动的容器列表:docker ps
(2)进入容器
docker exec -it nexus3 /bin/bash
(3)查看密码
cat /nexus-data/admin.password
(4)登陆并按照提示修改admin初始密码即可
(二)、nexus配置docker镜像仓库
在确保已经登陆到nexus之后接下来配置docker镜像仓库
①创建docker-hosted仓库
②docker登陆到nexus仓库
docker添加信任仓库地址: vi /etc/docker/daemon.json
{"registry-mirrors": ["https://bxsfpjcb.mirror.aliyuncs.com"],"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "10m","max-file": "3"},"insecure-registries":["127.0.0.1","192.168.1.119:5000","192.168.1.119:443","192.168.1.119:8082"]
}
按上所示追加nexus的私服地址
重启docoker
systemctl daemon-reload && systemctl restart docker
docker登陆到仓库
docker login -u admin -p <密码> 192.168.1.119:8082
如下图所示表示登陆成功
③测试从nexus仓库推送和拉取镜像
先从外网拉取一个ngxin镜像
docker pull nginx
重新打一个tag,标记为私服仓库的镜像
docker tag nginx 192.168.1.119:8082/nginx:latest
推送到nexus仓库
docker push 192.168.1.119:8082/nginx:latest
删除本地nginx镜像
docker rmi <imageId> -f
查看docker 镜像列表
docker images
拉取nexus仓库中的nginx镜像
docker pull 192.168.1.119:8082/nginx:latest
再次查看docker镜像列表
docker images
二、使用Harbor作为镜像仓库
(一)、安装Harbor
①安装docker-compose
从github上下载docker-compose的可执行包: https://github.com/docker/compose/releases
这里使用的1.28.6版本
下载好之后上传到服务器放到/usr/local/bin目录下并重命名为docker-compose
修改可执行权限:
chmod +x /usr/local/bin/docker-compose
查看docker compose版本:
docker-compose -v
②:安装Harbor
下载离线安装包: https://github.com/goharbor/harbor/releases
下载完之后上传服务器,解压并移动解压目录到/usr/local目录下
③配置https
harbor默认工作方式是http,但是这只能在页面访问,默认harbor推送拉取镜像时走的是https,所以需要配置下https
(1)生成秘钥和自签名整数
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
注意如上图中Common Name填入一个域名
(2)生成证书签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.imysh.com.key -out harbor.imysh.com.csr
注意如上图中Common Name填入上一步中的域名,并填写challenge password
(3)生成服务器证书
openssl x509 -req -days 3650 -in harbor.imysh.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.imysh.com.crt
最终得到目录下的几个证书文件
(4)安装证书
将服务器需要的文件拷贝到一个目录下
mkdir -p /data/cert/harbor/ && cp harbor.imysh.com.crt harbor.imysh.com.key /data/cert/harbor/
④修改harbor配置
cd /usr/local/harbor && cp harbor.yml.tmpl harbor.yml && vi harbor.yml
按下图所示修改一下几处
⑤执行安装
执行安装准备命令
./prepare
执行安装脚本
sh install.sh
过程可能会比较慢,看到如下图所示即表示安装并启动成功
⑥访问Harbor
http的端口默认设置的80端口,即访问服务器ip即可
默认用户名admin,密码Harbor12345 ,登录之后即可看到harbor管理界面
(二)配置Harbor为镜像仓库
①配置harbor所在主机的host
添加上图红圈所示,后面的域名是前面步骤中配置harbor证书时填写的域名
②创建docker证书目录
mkdir -p /etc/docker/certs.d/harbor.imysh.com
注意必须是在/etc/docker目录下创建certs.d目录,并在certs.d目录下创建前面步骤中配置harbor证书时填写的域名目录
③复制客户端证书
cp /usr/local/harbor/ca.crt /etc/docker/certs.d/harbor.imysh.com/
④docker添加信任仓库地址
重启docoker
systemctl daemon-reload && systemctl restart docker
⑤docker登录到harbor
docker login -u admin -p Harbor12345 192.168.1.119:443
⑥测试harbor拉取和推送镜像
将本地nginx镜像重新打上标签并推送到harbor默认的library项目中
查看library项目中是否有刚上传的nginx镜像
删除本地的nginx,然后从harbor中拉取
⑦其他
(1)Harbor停止和启动
cd /usr/local/harbor
# 停止命令
docker-compose down -v
# 启动命令
docker-compose up –d
(2)Harbor添加用户
添加完成之后即可看到
(3)Harbor限制匿名访问
Harbor仓库可以设置为私有
也可以给某一个项目添加用户并给用户赋予权限
查看项目下的用户多了一个devuser
(4)Harbor角色说明
超级管理员: 即就是admin,最高的权限
项目管理员: 可以管理整个项目
维护人员: 比项目管理员少了人员和用户管理的功能
开发者: 主要是上传个下载镜像,不能删除项目和镜像
访客: 主要是下载镜像和查看项目的一些配置和人员及日志信息等
受限用户:基本就只能拉取镜像了
另外匿名用户只能查看和下载公开的项目,私有项目无法访问
写在最后:
Nexus和Harbor都可以作为docker的镜像仓库,但是Nexus不仅可以做为镜像仓库,也可以作为maven、pip、apt、npm、yum等等主流私有仓库;Harbor相比Nexus,管理界面相对友好,并且提供更细致化的权限控制,二者各有优点,可自行选择使用
Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor相关推荐
- Docker搭建私有镜像仓库
一. 常见镜像仓库服务 镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库:例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的 ...
- Docker学习二:Docker镜像与容器
前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...
- Docker容器之搭建本地私有仓库
Docker容器之搭建本地私有仓库 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上 ...
- Docker系列二~自定义网桥
Docker系列二 docker自定义网桥 查看本地网络 docker network ls #查看本地所有网络[root@localhost conf.d]# docker network ls N ...
- Nexus 搭建私有镜像仓库
Nexus 搭建私有镜像仓库 说明 国内网络环境下直接使用默认的 npm 下载资源过慢,所以很多文章中都建议将 npm 的 registry 切换为 淘宝的 npm 镜像,如下 npm config ...
- 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)
文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...
- Docker系列之五:Docker 三剑客之 Docker Swarm
title: Docker系列之五:Docker 三剑客之 Docker Swarm categories: Docker tags: - Docker timezone: Asia/Shanghai ...
- 基于Docker搭建私有镜像仓库
通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...
- CentOS7 Docker搭建私有镜像仓库
简述 docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是公司 ...
最新文章
- Activiti——工作流程-核心API(二)
- Android使用磁盘缓存DiskLruCache
- ASPxGridView之PreviewRow
- MIT 6.031 Software Construction Lab1-Part2-Personal-Art
- SAP C4C里如何实现Sales Unit和Seller的自动determination
- 【JS】我的JavaScript学习之路(2)
- AlldayTest 产品使用--文件
- 剑指offer 31.栈的、压入弹出序列
- Java架构师面试题系列之Dubbo面试专题(29题,含详细答案解析)
- terminal中常用的rvm指令
- ros pppoe服务器性能,ROS软路由中最详细的PPPOE服务器设置教程
- 区块链实现的关键技术_保险中的区块链:实现关键的增长机会
- js中深克隆与浅克隆
- 如何让latex中插入没有标号的footnote
- 四极管:京东物流“后牌照”战略:8月底开放 或分拆
- 小项目----音乐在线播放器
- 1. Java POI 读取、写入Excel(包括样式)的工具类Utils
- 关于海思3559A板子(润和出厂)启动的阶段性总结
- int、Integer、new Integer和Integer.valueOf()的 ==、equals比较
- 【统计技术】数据挖掘在反欺诈中的应用