首页 > 其他分享 >Nexus3 docker hosted私有仓库搭建指南

Nexus3 docker hosted私有仓库搭建指南

时间:2022-10-18 12:22:05浏览次数:57  
标签:mirrors 仓库 company 8083 json Nexus3 hosted docker

 

1、登录至nexus3控制中心;选择 Blob Stores 创建一个docker blod

 

 

 2、创建docker(hosted)类型仓库

 

 

  • 指定私有仓库名
  • 指定端口
  • 允许拉取方式
  • 指定docker blod

 3、指定docker group 组用于pull拉取镜像

 

 

 4、Docker仓库介绍

 

 

  • hosted:本地仓库、通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库
  • proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库
  • group:仓库组,用来合并多个hosted、proxy仓库,当你的项目希望在多个reposistory使用资源时就不需要多次引用了,只需要用一个group接口。

 5、创建一个角色专门用于push docker镜像

添加访问权限

  • 菜单Security -> Realms把Docker Bearer Token Realm移到右边的框中保存。
  • 添加用户规则:菜单Security -> Roles -> Create role 在Privlleges选项中搜索docker把相应的规则移到到右边的框中然后保存。
  • 添加用户:菜单Security -> Users -> Create local user 在Roles选项中选中刚才创建的规则移动到右边的窗口保存。

 

 

 

5.1 、用户授权

点击Users 栏 可以进行创建用户,也可以点击用户进行授权
演示一下将刚才的docker权限教师 授权给 admin ,admin 默认拥有全部权限,但是测试的我不想创建用户,方法如此就OK了,没必要去闯将一个用户在来授权.
记住将 nx-admin勾选上

 

 

 6、创建docker 仓库用户

用户名/密码

docker/docker@123!

 

 

 

7、接下来暴露8083端口、用于docker镜像的push

[root@node3 /]# docker ps
CONTAINER ID        IMAGE                                                         COMMAND                  CREATED             STATUS              PORTS                              NAMES
9fc01253fd99        registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0-beta.2   "./start.sh"             2 months ago        Up 2 hours          0.0.0.0:8181->8181/tcp             MinDoc_New
2c2ed16ea5cb        redis                                                         "docker-entrypoint.s…"   3 months ago        Up 2 hours          0.0.0.0:6379->6379/tcp             redis
64c3ba778f49        sonatype/nexus3                                               "sh -c ${SONATYPE_DI…"   3 months ago        Up 2 hours          0.0.0.0:8081-8083->8081-8083/tcp   nexus3

 

8、修改docker  daemon配置

配置  /etc/docker/daemon.json由于不是https,所以要在daemon.json中配置一下

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["http://mirrors.docker.company:8082"],
  "insecure-registries": [
         "mirrors.docker.company:8082",
         "mirrors.docker.company:8083"],
  "graph": "/home/docker"
}

insecure-registries:指定私库的地址 registry-mirrors:指定官网加速的地址 log-driver:指定docker的日志为json形式的 log-opts:指定日志为100M一个,最多一个文件 live-restore: 设置值为true时,将在重启docker的时候,docker正在运行的进行不重启

8.1、重新加载daemon配置并重启docker服务

systemctl daemon-reload && systemctl restart docker

 

9、配置完成,查看客户端目录情况

 

ls -al ~/

 

 

 连接仓库

  其他几区需要连接仓库才能进行push 、pull等操作,连接仓库前需要进行host域名配置

 

10、登陆仓库

docker login mirrors.docker.company:8083

 

11、登陆成功

 

 

 

#登录成功
注意:登录时,需要提供用户名和密码。认证的信息会被保存在~/.docker/config.json文件,在后续与私有镜像仓库交互时就可以被重用,而不需要每次都进行登录认证。

config.json 文件用于存储docker registry 的认证信息,cat /root/.docker/config.json

文件内容如下:

{
        "auths": {
                "192.168.11.38:8082": {
                        "auth": "YWRtaW46YWRtaW40NTcyODA="
                },
                "mirrors.docker.company:8083": {
                        "auth": "ZG9ja2VyOnN6eXh3QDEyMyE="
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.03.1-ce (linux)"
        }
}

config.json文件详解:

auth后面的内容其实是输入用户名和密码的加密后的输出,可以尝试加解密测试

解密

# xxx为上面加密后的值
[root@node3 ~]# echo -n  "YWRtaW46YWRtaW40NTcyODA=" | base64 -d
admin:admin457280               # 解密后的明文

加密

# 对比一下登录harbor的用户名:密码 加密后是否和~/.docker/config.json中auth的值对应
echo -n "user:password" | base64

[root@node3 ~]# echo -n 'docker:szyxw@123!' | base64
ZG9ja2VyOnN6eXh3QDEyMyE=       # 加密后的密文

 

12、先打一个tag

docker tag nginx:latest mirrors.docker.company:8083/nginx:latest

13、上传一个镜像试试

docker push mirrors.docker.company:8083/nginx:latest

14、push上传成功

 

 

15、回到nexus控制中心管理界面查看上传镜像

 

 

[root@node3 .docker]# docker images
REPOSITORY                                        TAG                 IMAGE ID            CREATED             SIZE
nginx                                             latest              2d389e545974        12 days ago         142MB
mirrors.docker.company:8083/nginx                 latest              2d389e545974        12 days ago         142MB
sonatype/nexus3                                   latest              589f7296a4a2        9 months ago        655MB
redis                                             latest              7614ae9453d1        9 months ago        113MB
hello-world                                       latest              feb5d9fea6a5        12 months ago       13.3kB
registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc   v2.0-beta.2         a563553bc0d2        3 years ago         506MB

16、搜索镜像

docker search mirrors.docker.company:8083/nginx

 

 到此,使用nexus搭建的docker私有仓库配置完毕。公司常用的镜像可以存放在私有仓库里 毕竟官方的dockerhub太慢

 

标签:mirrors,仓库,company,8083,json,Nexus3,hosted,docker
From: https://www.cnblogs.com/lwx57280/p/16802173.html

相关文章

  • docker使用
    一、基于Linux安装Docker1、下载关于Docker的依赖环境yum-yinstallyum-utilsdevice-mapper-persistent-datalvm212、设置镜像下载Docker的镜像源yum-config-manager-......
  • docker部署etcd集群单节点失败
    1、部署etcd3节点集群后其中一个节点报错2、查看etcd日志3、对比秘钥值是否正常4、看下memberlist5、备份etcd数据eesnapshotsave./snapshot2022-10-18.db6......
  • docker学习16-Docker 容器设置时区
    前言最近遇到一个问题,在本机部署操作时,获取本机当前时间存到mysql数据库,时间是当前北京时间没问题。但是用Docker容器部署项目,发现时间少了8个小时,于是想到是docker容器......
  • docker的overlay文件占用磁盘太大的解决-portainer
    【看网上都是什么迁移文件的就感觉不靠谱,治标不治本啊(这不应该是一个新生代coder的样子)】du-sh*一路查下去,发现overlay这个文件夹已经爆了。dockersystemprune-a才......
  • docker安装portainer方法
    docker安装portainer详细步骤portainer是一款容器管理可视化界面,不想在虚拟中使用命令管理容器的小伙伴,可以选择安装portainer对容器进行管理,查看日志、启动、停止容器......
  • docker的overlay2中存的都是什么and如何清理/var/lib/docker/overlay2
    前段时间有客户反映我们部署服务的服务器磁盘快满了,联系我们说看看清理一下于是就开始看服务器我们所有的服务都是使用docker部署的,经过检查,这次占满了磁盘的都是在/va......
  • Ubuntu 环境下安装 Docker
    目录1.系统要求2.添加镜像源3.安装DockerCE和containerd4.让普通用户使用Docker5.卸载Docker 1|01.系统要求Docker目前只能运行在64位平台上,并且要求内......
  • CentOs安装docker
    CentOs安装docker目录CentOs安装docker安装docker1、环境准备:linuxcentOS3.10版本及以上2、卸载(可选)3、需要的安装包4、设置镜像的仓库(推荐阿里云)5、安装dockerdock......
  • Docker的常用命令
    Docker的常用命令目录Docker的常用命令帮助命令1、镜像命令dockerimages查看所有本地的主机上的镜像dockersearch搜索镜像dockerpull下载镜像dockerrmi删除镜像2......
  • docker部署nacos配置mysql
    version:"3"services:mysql:restart:alwaysimage:mysql:latestcontainer_name:cloud_mysql......