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相关推荐

  1. Docker搭建私有镜像仓库

    一. 常见镜像仓库服务 镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库:例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的 ...

  2. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  3. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 前言 一.首先下载registry镜像 二.在daemon.json文件中添加私有镜像仓库的地址并重启 三.创建registry容器并开放端口 四.给镜像打标签后上 ...

  4. Docker系列二~自定义网桥

    Docker系列二 docker自定义网桥 查看本地网络 docker network ls #查看本地所有网络[root@localhost conf.d]# docker network ls N ...

  5. Nexus 搭建私有镜像仓库

    Nexus 搭建私有镜像仓库 说明 国内网络环境下直接使用默认的 npm 下载资源过慢,所以很多文章中都建议将 npm 的 registry 切换为 淘宝的 npm 镜像,如下 npm config ...

  6. 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)

    文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...

  7. Docker系列之五:Docker 三剑客之 Docker Swarm

    title: Docker系列之五:Docker 三剑客之 Docker Swarm categories: Docker tags: - Docker timezone: Asia/Shanghai ...

  8. 基于Docker搭建私有镜像仓库

    通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是 ...

  9. CentOS7 Docker搭建私有镜像仓库

    简述 docker中拉取的镜像都是在docker hub在线存储库中获取的,这个在线存储库里的docker镜像可以由任何用户发布和使用,显然这在某些场景下是不适用的,比如某些互金的隐私项目,或者是公司 ...

最新文章

  1. Activiti——工作流程-核心API(二)
  2. Android使用磁盘缓存DiskLruCache
  3. ASPxGridView之PreviewRow
  4. MIT 6.031 Software Construction Lab1-Part2-Personal-Art
  5. SAP C4C里如何实现Sales Unit和Seller的自动determination
  6. 【JS】我的JavaScript学习之路(2)
  7. AlldayTest 产品使用--文件
  8. 剑指offer 31.栈的、压入弹出序列
  9. Java架构师面试题系列之Dubbo面试专题(29题,含详细答案解析)
  10. terminal中常用的rvm指令
  11. ros pppoe服务器性能,ROS软路由中最详细的PPPOE服务器设置教程
  12. 区块链实现的关键技术_保险中的区块链:实现关键的增长机会
  13. js中深克隆与浅克隆
  14. 如何让latex中插入没有标号的footnote
  15. 四极管:京东物流“后牌照”战略:8月底开放 或分拆
  16. 小项目----音乐在线播放器
  17. 1. Java POI 读取、写入Excel(包括样式)的工具类Utils
  18. 关于海思3559A板子(润和出厂)启动的阶段性总结
  19. int、Integer、new Integer和Integer.valueOf()的 ==、equals比较
  20. 【统计技术】数据挖掘在反欺诈中的应用

热门文章

  1. vagrants流浪者全人物武器合成
  2. 机器学习之决策树算法(3)
  3. algorithm中的排序算法详解
  4. Flutter开发学习课程携程app开发(一)
  5. Unity实时阴影实现图解
  6. 武大遥感信息工程下面的计算机技术,武汉大学遥感信息工程学院复试经验及个人见解...
  7. 广州计算机软件学习,同步学广州版电脑版
  8. CRCC铁路产品认证
  9. 注册中心对比CP/AP动态切换
  10. TypeScript 高级用法总结