本文介绍利用Nexus来做docker私服,来管理自己或者公司的镜像。类似于做maven私服一样……

首先要安装nexus:参考章节docker安装各种常用开发应用软件,docker安装nexus。

创建Docker仓库

  • 首先登录nexus3 。
  • 点击“Create repository”按钮,创建仓库。Nexus支持多种仓库类型,例如:maven、npm、docker等。本文创建一个docker仓库。一般来说,对于特定的仓库类型(例如docker),细分了三类,分别是proxy、hosted、group,含义如下:
    hosted,本地代理仓库,通常我们会部署自己的构件到这一类型的仓库,可以push和pull。
    proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库,只能pull。
    group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组,只能pull。

  • 下面创建仓库:

填写配置(注意端口号 ):

连接仓库

在其它机子或者本机,连接了仓库,才能做push、pull动作。

  • 首先,编辑vim /etc/docker/daemon.json
[root@api data]# cat /etc/docker/daemon.json 
{
  "insecure-registries" : [
    "11.148.41.11:8082"
  ]
}

11.148.41.11:8082:这里ip是nexus服务器的ip,端口是是上面配置的docker仓库的端口。

然后重启docker引擎。

  • 登录
docker login -u admin -p admin123 ip:8082  #注意这里的端口是配置仓库时选择的端口号

登录报错处理:

1.错误:

[root@xr-server-dev eureka-server]# docker login  -u admin -p admin123 localhost:8082
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: login attempt to http://localhost:8082/v2/ failed with status: 401 Unauthorized

错误处理:

再次登录:

[root@xr-server-dev eureka-server]# docker login  -u admin -p admin123 localhost:8082
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

成功

上传镜像

不能直接上传镜像:docker push nginx:latest。因为docker默认是上传到docker hub仓库的。

所以要先改镜像标签:

docker tag nginx:latest ip:8082/nginx:0.1

然后上传:

docker push ip:8082/nginx:0.1

下面成功截图:

拉取镜像

docker pull ip:8082/nginx:0.1

搜索镜像

docker search ip:8082/nginx