docker安装nexus3

docker安装nexus3并创建三种私库

一、nexus3安装

1.下载nexus3的镜像

$ docker pull sonatype/nexus3

2.使用镜像启动一个容器

$ docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /home/nexus/nexus-data:/nexus-data --restart=always sonatype/nexus3
  • 8082端口是用于host镜像仓库的服务端口
  • 8083端口用户group镜像仓库的服务端口
  • 8081 端口是nexus的服务端口
  • --name nexus3
  • -v /home/nexus/nexus-data:/nexus-data 将容器内nexus-data数据文件夹挂载到宿主机/home/nexus/nexus-data目录下
  • sonatype/nexus3 镜像名,如果后面不加版本号,则默认启动latest版本

这里单独说一下 --restart=always:
意思是不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。

  • no :容器退出时不要自动重启。这个是默认值。
  • on-failure[:max-retries] : 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
  • always :不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
  • unless-stopped :不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。

启动之后我们就可以通过http://服务器IP:8081访问。默认账号密码为admin/admin123

二、Nexus3创建Docker私有仓库

1.通过浏览器访问Nexus

http://服务器IP:8081

2.登录nexus

点击右上角进行登录,通过初始用户名和密码进行登录(admin/admin123):

登录

3.Create repository

点击设置界面,选择Repositories,点击Create repository,如下图所示:

4.选择仓库类型

这里Docker有三种类型,分别是group、hosted、proxy。选择docker(hosted),如下图:


三种仓库类型

注:Docker镜像仓库类型含义解释如下:

  • hosted : 本地存储,即同docker官方仓库一样提供本地私服功能
  • proxy : 提供代理其他仓库的类型,如docker中央仓库
  • group : 组类型,实质作用是组合多个仓库为一个地址
4.1 创建host仓库

指定docker仓库的名称、指定一个端口用来通过http的方式进行访问仓库、勾选是否支持docker API V1,然后create repository;


host仓库创建
4.2 创建proxy仓库
proxy仓库
4.3 创建group仓库
group仓库

5.docker服务的设定

Docker的私库可以使用http或者https,Nexus 3都予以支持,本文的方式采用http方式,因此需要设定docker,在docker启动前设定如下信息是需要的
编辑/etc/docker/daemon.json;增加如下内容,当然也可通过启动参数增加

$ vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries":["192.168.80.129:8082","192.168.80.129:8083"],
  "disable-legacy-registry": true
}

6.重启docker进程

# 使daemon生效
$ systemctl daemon-reload
# 重启docker
$ systemctl restart docker

7.验证登录

要使用私库进行上传下载需要进行登录连接到Nexus

$ docker login http://192.168.1.111:8082
$ docker login http://192.168.1.111:8083
登录验证成功

8.docker-proxy验证

$ docker pull 192.168.1.111:8083/redis
Using default tag: latest
latest: Pulling from redis
b0568b191983: Pulling fs layer 
6637dc5b29fe: Download complete 
7b4314315f15: Pulling fs layer 
2fd86759b5ff: Waiting 
0f04862b5a3b: Waiting 
2db0056aa977: Waiting 

查了一下nexus的一些问题,发现有不少都是跟blob相关,看起来相关的小的问题还有一些在不断的收拾中,但是不影响结果。 确认proxy仓库,发现pull的alpine的3.5版本已然在proxy仓库中保存完毕,所以上面的unknown blob也确实没有影响结果。


image.png

9 docker-hosted验证

查看镜像

$ docker images
镜像列表

tag镜像

$ docker tag hello-world:latest 192.168.1.111:8082/docker:latest

push镜像

$ docker push 192.168.1.111:8082/docker:latest
nexus3仓库
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容