使用nexus搭建一个docker私服


我们知道在 nexus2的时候,我们大多使用它作为一个 maven私服,不过在 nexus3时,它也可以作为一个 docker私服来使用。今天我们使用 docker-compose来搭建一个docker私服。

一、需求:

  1. 使用docker-compose完成docker私服的搭建
  2. 使用47.101.130.164:9001作为上传私有镜像的服务区和端口
  3. 创建的docker仓库和pushpull镜像,即仓库类型为hosted

二、实现步骤

1、编写docker-compose文件,实现nexus的部署

备注描述
9000端口nexus的前端界面展示端口
9001端口我们会创建一个自己的hosted类型的 docker仓库,端口为9001
nexus-data此数据卷中保存了admin用户的密码,在文件admin.password文件中
version: '3'

services:
  nexus:
    image: sonatype/nexus3:3.19.1  # 指定 nexus 的镜像
    ports:
    - "9000:8081"  # 将容器的 8081 端口映射到宿主机的9000端口
    - “9001:9001”  # 9001 端口作为我们自己创建私有docker仓库的端口,实现上传镜像端口
    volumes:
    - "nexus-data:/nexus-data"   # 数据卷
    environment:
      INSTALL4J_ADD_VM_PARAMS: -Xms1g -Xmx1g -XX:MaxDirectMemorySize=3g  # 指定jvm参数
      NEXUS_CONTEXT: nexus  # 指定nexus context-path

volumes:
  nexus-data:

2、修改/usr/lib/systemd/system/docker.service 配置文件

因为我本地不是 https ,不配置可能发生异常,导致镜像push不到私服
修改步骤如下:
1、修改 docker.service配置文件
修改配置文件
2、重新启动docker容器

systemctl daemon-reload
systemctl restart docker.service

3、访问 nexus创建一个 docker仓库

> docker仓库类型

  1. hosted: 此类型的仓库,可以pushpull操作,可以当作我们项目开发中的私有仓库
  2. proxy: 此类型的仓库,只可以进行 pull操作,可以代理一些 中央仓库等
  3. group: 此类型的仓库,只可以进行 pull操作,用于将多个仓库放到一个组中,便于拉取数据(docker镜像等)使用。

1、此处我们简单演示一个 hosted 类型的仓库

a)、创建一个 Blob Stores,用于存储数据

在这里插入图片描述

b)、创建一个hosted 类型的仓库

在这里插入图片描述
在这里插入图片描述

c)、测试上传和拉取镜像

在这里插入图片描述
到此,一个简单的私服就搭建完成了。
当然nexus的功能更加强大,可以尝试一下别的功能。

posted @ 2019-12-01 15:20  huan1993  阅读(137)  评论(0编辑  收藏  举报