CentOS7下通过Docker架设Nexus Yum代理服务器

一. CentOS7下通过Docker安装Nexus

  1. 安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce-18.06.0.ce
systemctl start docker
systemctl enable docker
systemctl status docker
docker version
  1. 拉取Nexus镜像
docker pull sonatype/nexus3:3.16.0
docker images
  1. 配置Nexus环境
mkdir /opt/nexus-data

# 容器中nexus的默认运行用户是nexus,uid和gid为200
chown -R 200 /opt/nexus-data

# 启动Nexus镜像
docker run -d \
--name nexus3 \
--ulimit nofile=65536:65536 \
-p 8081:8081 \
-v /opt/nexus-data:/nexus-data \
sonatype/nexus3:3.16.0

# 查看日志
docker logs -f nexus3

# 查看Nexus容器的运行状态
docker ps
ss -tan
  1. 浏览器访问Nexus测试一下
    http://192.168.74.141:8081/
    CentOS7下通过Docker架设Nexus Yum代理服务器_第1张图片
    默认的管理员账号admin,密码admin123
    CentOS7下通过Docker架设Nexus Yum代理服务器_第2张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第3张图片

二. 配置Nexus代理Yum仓库

  1. 创建仓库

yum私服有三种类:

  • hosted:本地存储,和yum官方仓库一样提供本地私服功能。常用于存放本地开发生成的rpm上传Nexus私服。
  • proxy:提供远程仓库代理,比如163或者阿里的yum仓库代理。
  • group:仓库组,将上述类型的仓库以组的形式组织起来管理,并提供统一的对外接口。
  1. 创建blob存储
  • 创建一个存放rpm文件的目录作为yum仓库:yum-base
    CentOS7下通过Docker架设Nexus Yum代理服务器_第4张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第5张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第6张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第7张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第8张图片
  • 同理再创建一个存放rpm文件的目录作为yum epel仓库:yum-epel
    CentOS7下通过Docker架设Nexus Yum代理服务器_第9张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第10张图片
  1. 配置yum代理仓库
  • 创建CentOS7-Base基本仓库代理
    CentOS7下通过Docker架设Nexus Yum代理服务器_第11张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第12张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第13张图片

填写内容如下:
Name:proxy-base
Remote storage:http://mirrors.aliyun.com/centos/
Blob store:yum-base
其他保持默认即可,然后Create repository。

  • 类似地再创建CentOS7的EPEL代理

填写内容如下:
Name:proxy-epel
Remote storage:http://mirrors.aliyun.com/epel/
Blob store:yum-epel
其他保持默认即可,然后Create repository。

在这里插入图片描述

三. 配置Yum客户端主机

先备份原repo文件

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
  1. 生成nexus.repo文件
cd /etc/yum.repos.d/
vim nexus.repo
加入
[nexusrepo]
name=Nexus Repository
baseurl=[URL]$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

[URL]参考
CentOS7下通过Docker架设Nexus Yum代理服务器_第14张图片

参考配置
[nexusrepo]
name=Nexus Repository
baseurl=http://192.168.74.141:8081/repository/proxy-base/ r e l e a s e v e r / o s / releasever/os/ releasever/os/basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

  1. 生成nexus-epel.repo文件
cd /etc/yum.repos.d/
vim nexus-epel.repo
加入
[nexus-epel]
name=Nexus EPEL Repository
baseurl=[URL]/7/$basearch
enabled=1
gpgcheck=0
failovermethod=priority

[URL]参考
CentOS7下通过Docker架设Nexus Yum代理服务器_第15张图片

参考配置
[nexus-epel]
name=Nexus EPEL Repository
baseurl=http://192.168.74.141:8081/repository/proxy-epel/7/$basearch
enabled=1
gpgcheck=0
failovermethod=priority

  1. 重建Yum客户端主机的缓存
yum clean all
yum makecache

CentOS7下通过Docker架设Nexus Yum代理服务器_第16张图片

  1. 查看Nexus上的缓存结果
    CentOS7下通过Docker架设Nexus Yum代理服务器_第17张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第18张图片
    CentOS7下通过Docker架设Nexus Yum代理服务器_第19张图片

四. 安装软件包测试

  1. 测试CentOS7 Base仓库中的软件包
yum install -y curl
yum install -y lrzsz

CentOS7下通过Docker架设Nexus Yum代理服务器_第20张图片
2. 测试EPEL仓库中的软件包

yum install -y nginx

CentOS7下通过Docker架设Nexus Yum代理服务器_第21张图片

五. 将Docker中的Nexus注册为系统服务

编写unit文件

[Unit]
Description=Nexus3
Documentation=https://www.sonatype.com
After=network-online.target firewalld.service docker.service
Requires=docker.service

[Service]
ExecStartPre=-/usr/bin/docker rm -f nexus3
ExecStart=/usr/bin/docker run -d \
--name nexus3 \
--ulimit nofile=65536:65536 \
-p 8081:8081 \
-v /opt/nexus-data:/nexus-data \
sonatype/nexus3:3.16.0

ExecStop=/usr/bin/docker stop nexus3

LimitNOFILE=65535
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

六. 参考资料

  • 【nexus&yum】CentOS7.x上用nexus搭建yum私有仓库

你可能感兴趣的:(java,nexus,docker)