说明:Nexus是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven、npm、Docker、YUM、Helm等格式数据的存储和发布。

一、安装jdk

1)安装JDK

yum install -y java-1.8.-openjdk*

2)配置环境

vim /etc/profile
# set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.222.b10-.el7_6.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3)重载

source /etc/profile
echo "source /etc/profile" >> /etc/bashrc java -version

二、安装nexus

2.1 下载

mkdir -p /opt/nexus && cd /opt/nexus

wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.18.1-01-unix.tar.gz
tar -zxvf nexus-3.18.--unix.tar.gz
mv nexus-3.18.- nexus3.

2.2 配置

2.2.1 修改jdk

vim /opt/data/nexus/nexus3./bin/nexus
INSTALL4J_JAVA_PREFIX="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64"

2.2.2 修改启动用户

vim /opt/data/nexus/nexus3./bin/nexus.rc

run_as_user="root"

2.2.3 修改数据和日志存储位置

vim /opt/data/nexus/nexus3./bin/nexus.vmoptions

-XX:LogFile=/opt/data/blob-stores/others/sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=/opt/data/blob-stores/others/sonatype-work/nexus3
-Djava.io.tmpdir=/opt/data/blob-stores/others/sonatype-work/nexus3/tmp

2.2.4 查看默认端口

cat /opt/data/nexus/nexus3./etc/nexus-default.properties |grep application-port

2.3 启动

2.3.1 启动脚本

vim /usr/lib/systemd/system/nexus.service

[Unit]
Description=nexus service [Service]
Type=forking
LimitNOFILE=
ExecStart=/opt/nexus/nexus3./bin/nexus start
ExecReload=/opt/nexus/nexus3./bin/nexus restart
ExecStop=/opt/nexus/nexus3./bin/nexus stop
Restart=on-failure [Install]
WantedBy=multi-user.target

2.3.2 自启动

将服务加入开机启动

systemctl daemon-reload
systemctl enable nexus
systemctl start nexus

三、安装nginx

3.1 安装

yum install -y nginx

3.2 证书申请

申请ssl证书,并存放在 /etc/nginx/cert 目录下

mkdir /etc/nginx/cert

3.3 配置nginx.conf

vim /etc/nginx/nginx.conf
#注释server,添加如下:
upstream nexusserver{
server 172.16.2.158:;
}
upstream mirrornexus{
server 172.16.2.158:;
}
upstream nexusdocker{
server 172.16.2.158:;
}

说明:

1)8081 为 nexus server 的端口,nexus本身服务程序;

2)6001 为 docker proxy 的端口,作为中央仓库的代理;

3)6000 为 docker hosted 的端口,推送拉取镜像

4)6001 和 6000 需登入后台进行相应的配置生成端口,这里是提前设置好nginx。

3.4 配置服务

3.4.1 服务程序

vim /etc/nginx/conf.d/nexusserver.conf
server {
listen ;
server_name nexus.wmq.com;
ssl on;
ssl_certificate cert/1566822_nexus.wmq.com.pem;
ssl_certificate_key cert/1566822_nexus.wmq.com.key; client_max_body_size ;
index index.html;
location / {
proxy_pass http://nexusserver;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen ;
server_name nexus.wmq.com;
client_max_body_size ;
index index.html;
location / {
return https://$server_name$request_uri;
}
}

3.4.2 代理仓库

vim /etc/nginx/conf.d/mirrornexus.conf
server {
listen ;
server_name mirror.nexus.wmq.com;
ssl on;
ssl_certificate cert/mirror.nexus.wmq.com.pem;
ssl_certificate_key cert/mirror.nexus.wmq.com.key; client_max_body_size ;
index index.html;
location / {
proxy_pass http://mirrornexus;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen ;
server_name mirror.nexus.wmq.com;
client_max_body_size ;
index index.html;
location / {
return https://$server_name$request_uri;
}
}

3.4.3 镜像仓库

vim /etc/nginx/conf.d/nexusdocker.conf
server {
listen ;
server_name reg.nexus.wmq.com;
ssl on;
ssl_certificate cert/reg.nexus.wmq.pem;
ssl_certificate_key cert/reg.nexus.wmq.key; client_max_body_size ;
index index.html;
location / {
proxy_pass http://nexusdocker;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen ;
server_name reg.nexus.wmq.com;
client_max_body_size ;
index index.html;
location / {
return https://$server_name$request_uri;
}
}

3.5 启动 nginx

nginx -t
systemctl enable nginx
systemctl start nginx

3.6 域名解析

nexus.wmq.com、mirror.nexus.wmq.com、reg.nexus.wmq.com 三个域名都解析到 nexus 主机内网地址

四、定时清理镜像

4.1 下载工具

github地址:https://github.com/mlabouardy/nexus-cli

mkdir /opt/nexus/clean-docker-images && cd /opt/nexus/clean-docker-images
wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli
chmod +x nexus-cli

4.2 配置

./nexus-cli configure
Enter Nexus Host: http://127.0.0.1:8081
Enter Nexus Repository Name: docker-wmqe
Enter Nexus Username: admin
Enter Nexus Password: *******

会在当前目录生成 .credentials 文件,该文件记录了上面输入的信息。

4.3 脚本

vim clean-docker-images.sh
#! /bin/sh
CLI_HOME=/opt/nexus/clean-docker-images
cd $CLI_HOME
KEEP_VERSION_NUM=
IMAGES=$($CLI_HOME/nexus-cli image ls|grep -v Total) clean_images() {
for imgs in $(echo $IMAGES);
do
echo "清理$imgs";
$CLI_HOME/nexus-cli image delete -name $imgs -keep $KEEP_VERSION_NUM
done
} clean_images

4.4 计划任务

crontab -e
* * * sh /opt/nexus/clean-docker-images/clean-docker-images.sh > /opt/nexus/clean-docker-images/clean-docker-images.log >&

镜像仓库 Nexus 3.18.1的更多相关文章

  1. 019.nexus搭建docker镜像仓库/maven仓库

    一.安装docker CE 参考docker doc https://docs.docker.com/install/linux/docker-ce/centos/ 二.docker启动nexus3 ...

  2. Kunbernetes从私有仓库nexus拉取镜像

    1.docker登陆认证 [root@master ~]# vim /etc/docker/daemon.json { "insecure-registries": [" ...

  3. 使用Nexus3构建Docker私有镜像仓库

    一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并 ...

  4. [转]Ubuntu18.04下使用Docker Registry快速搭建私有镜像仓库

    本文转自:https://blog.csdn.net/BigData_Mining/article/details/88233015 1.背景 在 Docker 中,当我们执行 docker pull ...

  5. 6.docker的私用镜像仓库registry

    docker方式启动镜像仓库 / # cat /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry s ...

  6. docker 系列 - 企业级私有镜像仓库Harbor部署(转载)

     本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f  , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...

  7. 企业级镜像仓库Harbor

    介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...

  8. harbor镜像仓库-02-https访问配置

    harbor镜像仓库-02-https访问配置 harbordockerhttps harbor搭建部署参考上一章节 harbor镜像仓库-01-搭建部署 Harbor默认使用http,给harbor ...

  9. Maven setting配置镜像仓库

    国内Maven镜像仓库值得收藏 1.配置IDE构建的Maven存放目录(解压目录) 2.配置IDE的User setting file路径,修改setting配置文件 配置本地仓库   <!-- ...

随机推荐

  1. vue多个路由使用同一个页面,通过name判断参数,渲染页面数据

    项目中,发现有多个页面的数据内容相同,只是请求数据的参数不同,就可以使用同一个组件来渲染 这里的客户列表 / 我负责的 / 我参与的 都使用同一个组件,不同点在请求数据的参数 可以看到,通过钩子函数, ...

  2. Android 自定义ListView动态加载数据

    我们都知道网络取数据是耗时操作,如果我们一次性请求所有数据,假如数据量不多那还可以接受,但是如果数据量特别多,那么带来的后果就是用户的愤怒(用户是很没有耐心的),所以这时候我们就需要动态的加载数据,分 ...

  3. How to use VideoToolbox to decompress H.264 video stream

    来源:http://stackoverflow.com/questions/29525000/how-to-use-videotoolbox-to-decompress-h-264-video-str ...

  4. Myapp

    一.github地址:https://github.com/jianghailing/rjgcsecondwork 二.PSP表格: PSP2.1 Personal Software Process ...

  5. 将积累多年的java学习资料,pdf文档给大家分享一下,比如《大话设计模式》《算法》《Linux私房菜》等等

    话不多说,资料目录如下,需要的拿走,下载的同时别忘了点下推荐. 需要的点下面链接,到小编网盘进行下载: 2-大话设计模式.pdf 链接:https://pan.baidu.com/s/1b05puNO ...

  6. php导出数据到多个csv并打包压缩

    1.不压缩直接下载 // 测试php导出大量数据到csv public function actionExportData() { // 设置不超时 set_time_limit(0); // 设置最 ...

  7. 十七、Python面向对象之继承

    在面向对象,继承是一个很重要的特性 子类与父类,子类是对父类的一种扩展,在父类的属性和方法上进行一些扩展 示例:没带继承   #定义一个带编号和状态的门的类 class Door(object): d ...

  8. 【Appium】Android 按键码

    keycode也是appium很强大的功能,鉴于官网不翻墙无法打开,特此备忘. 电话键     KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOM ...

  9. Matplotlib 绘制定制的直方图

    1.普通风格 代码 import numpy as np import matplotlib.pyplot as plt rng = np.random.RandomState(27) x = rng ...

  10. Xcode添加库文件framework (转)

    首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我 ...