zoukankan      html  css  js  c++  java
  • 部署Nexus作为docker的私有仓库

    目录

    Docker搭建Nexus私有仓库... 1

    一、安装部署... 1

    1、安装... 2

    2、访问网页端... 2

    二、配置使用... 2

    1、创建本地仓库... 2

    2、docker配置... 3

    3、上传、拉取镜像... 4

    4、上传、拉取镜像... 4

    5、权限管理... 5

    Docker搭建Nexus私有仓库

    Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven、npm、Docker、YUM、Helm等格式数据的存储和发布;并且能够与Jekins、SonaQube和Eclipse等工具进行集成。Nexus3支持作为宿主和代理存储库的Docker存储库,可以直接将这些存储库暴露给客户端工具;也可以以存储库组的方式暴露给客户端工具,存储库组是合并了多个存储库的内容的存储库,能够通过一个URL将多个存储库暴露给客户端工具,从而便于用户的使用。通过nexus3自建能够有效减少访问获取镜像的时间和对带宽使用,并能够通过自有的镜像仓库共享企业自己的镜像。在本文中,采用Docker方式安装部署Nexus3。
    注意:目前的版本有2.x和 3.x ,3.x的支持范围更广,支持ruby和docker。如果单纯的maven私服,建议使用2.x

    一、安装部署

    1、安装nexus

    [root@localhost ~]# docker run -d --user root -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -v /opt/nexus-data:/nexus-data --name nexus3 sonatype/nexus3:3.14.0

    #映射端口对应的用途:

    8081:可以通过http访问nexus应用

    8082:docker(hosted)私有仓库,可以pull和push

    8083:docker(proxy)代理远程仓库,只能pull

    8084:docker(group)私有仓库和代理的组,只能pull

    #使用参数 -v 建立宿主机与Docker目录映射关系,/nexus-data:docker里存nexus数据目录,所以将数据目录存放到宿主机/opt/nexus-data

    2、访问网页端

    http://192.168.100.163:8081 默认账号密码: admin/admin123

    二、创建私有镜像仓库

    1、repository的类型

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

     

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

    在创建镜像仓库的页面中,设置镜像仓库的相关信息,包括名称、HTTP端口、是否允许匿名拉取镜像等信息。这里需要注意的是,此处的HTTP端口(此处的值为8082)很重要,后续拉取和推送进行是使用此端口进行的,而不是nexus本身对外暴露的端口。

     

    3、修改docker配置

    在/etc/docker/daemon.json文件中添加下面的内容:

    [root@localhost ~]# cat /etc/docker/daemon.json

    {

        "insecure-registries":["192.168.100.163:8082"]

    }

    [root@localhost ~]# systemctl daemon-reload

    [root@localhost ~]# systemctl restart docker

    [root@localhost ~]# docker info

    Insecure Registries:

       192.168.100.163:8082  #生效了

       127.0.0.0/8

    4、上传、拉取镜像

    [root@localhost ~]# docker login 192.168.100.163:8082

    Username: admin

    Password: admin123

    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.

    Configure a credential helper to remove this warning. See

    https://docs.docker.com/engine/reference/commandline/login/#credentials-store

    Login Succeeded  #登录成功

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

    [root@localhost ~]# docker pull hello-world

    [root@localhost ~]# docker tag hello-world 192.168.100.163:8082/helloworld:1.0

    [root@localhost ~]# docker push 192.168.100.163:8082/helloworld:1.0

     

    [root@localhost ~]# docker pull 192.168.100.163:8082/helloworld:1.0  #拉取镜像

    1.0: Pulling from helloworld

    1b930d010525: Pull complete

    Digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a

    Status: Downloaded newer image for 192.168.100.163:8082/helloworld:1.0

    192.168.100.163:8082/helloworld:1.0

    5、权限管理

    创建用户:

    默认是使用admin登录的,权限太高,可以给用户单独创建账号

    建立 docker 角色组,权限为 nx-repository-view-docker-*-*

     

    建立新用户,并加入为 docker角色组

     

    登录

     

  • 相关阅读:
    多线程中的wait与sleep到底谁释放了锁?
    Java并发编程:volatile关键字解析
    Spring的bean为什么是单例的?
    Java学习之反射
    Http && Https(绕过证书) 请求工具类 (Java)
    Java工具-检验ftp服务器的指定文件是否存在
    文件读取FileUtil工具类 亲测可用
    MyBatis 遇到的报错
    Mac终端 mysql Operation not permitted错误解决方案
    Kubernetes---修改证书可用年限
  • 原文地址:https://www.cnblogs.com/chuangcc/p/12207037.html
Copyright © 2011-2022 走看看