Docker搭建Maven私有仓库Nexus--安装

为什么要搭建Maven仓库

Maven默认提供的中央仓库是在远程网络服务Appache提供的,这对于我们开发时不合理的。如果我们没网了或者什么情况,
我们怎么办?也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。先看下这张图应该大家就会明白了:
请添加图片描述
这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,
我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服即可,
既节省了网络带宽也会加速项目搭建的进程,这样对我们开发来说,对公司来说都是非常好的选择。

如果没有搭建私服会出现什么样的问题 :

如果没有私服,我们所需的所有构件都需要通过 Maven 的中央仓库或者第三方的 Maven 仓库下载到本地,

而一个团队中的所有人都重复的从 Maven 仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。

另外,很多情况下项目的开发都是在内网进行的,可能根本连接不了 Maven 的中央仓库和第三方的 Maven 仓库。

我们开发的公共构件如果需要提供给其它项目使用,也需要搭建私服。

搭建私服的优点 :

Maven 私服的概念就是在本地架设一个 Maven 仓库服务器,在代理远程仓库的同时维护本地仓库。
当我们需要下载一些构件(artifact)时,如果本地仓库没有,再去私服下载,私服没有,
再去中央仓库下载。这样做会有如下一些优点:

  • 减少网络带宽流量
  • 加速 Maven 构建
  • 部署第三方构件
  • 提高稳定性、增强控制
  • 降低中央仓库的负载

Nexus介绍 :

Nexus 是一个专门的 Maven 仓库管理软件,它不仅能搭建 Maven 私服,

还具备如下一些优点使其日趋成为最流行的 Maven 仓库管理器 ,提供了强大的仓库管理功能,构件搜索功能,它基于 REST,友好的 UI 是一个 ext.js 的 REST 客户端 , 它占用较少的内存 , 基于简单文件系统而非数据库

使用docker安装Nexus3

  1. 首先执行命令,来搜索Nexus3的镜像
[root@gt-web-wiki ~]# docker search nexus
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
sonatype/nexus3                      Sonatype Nexus Repository Manager 3             1091
sonatype/nexus                       Sonatype Nexus                                  448                  [OK]
nexusnetsoft/shopware-app                                                            1
nexusstats/nexus-stats                                                               1
nexusjpl/collection-manager                                                          1
nexusjpl/solr-cloud                                                                  0
nexusera/influx                                                                      0
nexusjpl/granule-ingester                                                            0
nexusjpl/cassandra                                                                   0
nexusera/device                                                                      0
nexusnetsoft/bitbucket-pipline-php                                                   0
nexusjpl/ningester                                                                   0
nexusera/auth                                                                        0
nexusera/backmanager                                                                 0
nexusera/notify                                                                      0
nexusjpl/nexus-webapp                                                                0
nexusera/ddi                                                                         0
nexusjpl/solr-cloud-init                                                             0
nexus166/gobld                       https://github.com/nexus166/gobld               0
nexusuw/delay-server                 a rather crummy mock server that can return0                    [OK]
nexuscore/phase-smith                                                                0
nexusnetsoft/jenkins-php                                                             0
nexus166/rocketchat                  https://github.com/nexus166/rocketchat-docker   0
nexusuw/node-8-python-aws-cli        quick and dirty build image for doing both n…   0                    [OK]
nexusg/node-chrome                   Dockerfile for node:latest + chrome             0
[root@gt-web-wiki ~]#
  1. 拉取响应的镜像 (这里我们拉取 : sonatype/nexus3)
docker pull sonatype/nexus3
  1. 创建宿主机挂载目录,并设置权限
mkdir /home/data/nexus

chown -R 200 /home/data/nexus
  1. 运行镜像,访问nexus
docker run -itd \ 
-p 8081:8081 \
--name nexus \
-e NEXUS_CONTEXT=nexus \
-v /home/data/nexus:/nexus-data \
镜像ID

# 命令讲解 : 
# 8081:8081表示宿主机端口和容器端口映射
# NEXUS_CONTEXT=nexus表示在访问Nexus后台web时,需要带上nexus进行访问,如http://ip:8081/nexus
# 本地若不存在sonatype/nexus3镜像,则会去下载,下载完毕后直接启动
  1. 访问nexus (浏览器访问 htp://ip:8081/nexus)

请添加图片描述

  1. 登录 :
  • 账号是 admin
  • 密码 : Nexus3之前的默认密码是admin123 , 但是在3之后 , 密码就是随机生成的了 , 但是密码存放到了一个文件里面 , 而中国文件被我们启动容器时,已经挂载出来了
# 查看admin密码
[root@gt-web-wiki nexus]# cat /home/data/nexus/admin.password
xaw760788698-cedwefwcwe-34vasdarfa
[root@gt-web-wiki nexus]#

下一章

Docker搭建Maven私有仓库Nexus–配置讲解,Spring Boot 集成

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当您想要搭建一个私有区块链时,您可以使用Python编写自己的区块链代码。下面是一个简单的示例,演示如何使用Python创建一个基本的私有区块链: ```python import hashlib import datetime class Block: def __init__(self, index, timestamp, data, previous_hash): self.index = index self.timestamp = timestamp self.data = data self.previous_hash = previous_hash self.hash = self.calculate_hash() def calculate_hash(self): sha = hashlib.sha256() sha.update(str(self.index).encode('utf-8') + str(self.timestamp).encode('utf-8') + str(self.data).encode('utf-8') + str(self.previous_hash).encode('utf-8')) return sha.hexdigest() class Blockchain: def __init__(self): self.chain = [self.create_genesis_block()] def create_genesis_block(self): return Block(0, datetime.datetime.now(), 'Genesis Block', '0') def get_latest_block(self): return self.chain[-1] def add_block(self, new_block): new_block.previous_hash = self.get_latest_block().hash new_block.hash = new_block.calculate_hash() self.chain.append(new_block) # 创建区块链实例 my_blockchain = Blockchain() # 添加新的区块 block1 = Block(1, datetime.datetime.now(), 'Block 1 Data', '') my_blockchain.add_block(block1) block2 = Block(2, datetime.datetime.now(), 'Block 2 Data', '') my_blockchain.add_block(block2) # 打印区块链 for block in my_blockchain.chain: print("Block {}: {}".format(block.index, block.data)) print("Timestamp: {}".format(block.timestamp)) print("Previous Hash: {}".format(block.previous_hash)) print("Hash: {}\n".format(block.hash)) ``` 这是一个简单的示例,创建了一个包含创世块和两个区块的区块链。每个区块都包含索引、时间戳、数据、前一个区块的哈希值和当前区块的哈希值。在示例中,我们使用SHA-256哈希算法计算区块的哈希值。 您可以根据自己的需求扩展该代码,添加更多的功能,如交易、挖矿、共识算法等。请注意,这只是一个简单的示例,真实的区块链实现可能会更加复杂和庞大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢乐少年1904

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值