欢迎来到窥视未来的博客

Fork me on GitHub

Nexus3 docker hosted私有仓库搭建指南

 

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太慢

 

posted on 2022-10-18 12:19  窥视未来  阅读(1419)  评论(0编辑  收藏  举报

导航