nexus3下搭建私有docker镜像

知识准备

阅读本文需要先了解docker下安装nexus3

先确认nexus3容器创建的脚本是这样的,其中8086端口是本文要使用的作为docker私有库的端口

docker run --name nexus3  --restart=always -p 8085:8081 -p 8086:8086 -v ~/docker/nexus/data:/nexus-data  --privileged=true -d sonatype/nexus3

下面是正文部分

nexus默认只有maven和nuget的镜像,但是他本身支持各种私有镜像,如linux软件包镜像:apt、yum,还有语言库镜像如:npm、conada、pypi、go,当然也包括docker的镜像,创建docker镜像的操作是这样的

  镜像类型有点多,仔细观察

可以发现docker的镜像类型有三个:group、host、proxy,他们的关系

proxy:官方源的镜像代理

host:自己创建的一些源,一般是私有的不公开的,本文主要创建的就是host类型的私有镜像

group:对这些镜像进行分组

在创建docker库之前,需要做一个授权的设置,否则无法创建仓库

下面就开始创建docker的仓库了,本文选择的是host类型,下面是录入的表单界面

 

创建完查看仓库列表,多了刚才见的cs仓库

 

 

仓库创建完以后,就可以使用一个测试的docker镜像来执行docker push了

说明:

  1. 因为我的nexus3也是通过docker容器创建的,容器所在的机器上的IP地址是172.17.0.1,那么172.17.0.1:8086就是nexus3下私有docker镜像的地址
  2. 我现在已经自己做了一个镜像:172.17.0.1:8086/app:v1.0.1 说明:要通过docker tag 把172.17.0.1:8086作为镜像名称的前缀

要先通过docker login登录,但是会有一个错误

docker login -u admin 172.17.0.1:8086
Password:
Error response from daemon: Get https://172.17.0.1:8086/v2/: http: server gave HTTP response to HTTPS client

解决这个错误需要如下处理

1.打开:vi /etc/docker/daemon.json
2.添加:"insecure-registries":["172.17.0.1:8086"]
3.重启:systemctl restart docker

再重新登录就可以成功了

docker login -u admin 172.17.0.1:8086
Password:
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 push

docker push 172.17.0.1:8086/app:v1.0.1
The push refers to repository [172.17.0.1:8086/app]
7eab7e4c2e5d: Pushed
0c746c7a2bd6: Pushed
9675b67121e6: Pushed
f1dd685eb59e: Pushed
v1.0.1: digest: sha256:1f1a27db80d7823d3dc08731732e7a935930a23e682b7ed6e2aaff2ff7d78743 size: 1153

在nexus3中查看push的镜像 

 

 参考资料

1.使用nexus 存储 docker镜像,作为私有的镜像仓库

2.使用Nexus3搭建Docker私有仓库

3.Nexus3最佳实践系列:搭建Docker私有仓库 这篇文章介绍了外网问是nginx的ssl配置

 

posted on 2021-10-25 17:08  Netsharp  阅读(556)  评论(0编辑  收藏  举报

导航