Docker快速部署Nexus3
Posted 老猫烧须
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker快速部署Nexus3相关的知识,希望对你有一定的参考价值。
Nexus作为一个强大的本地私仓,用Maven的人都知道,在这里就不做详细的介绍了,有兴趣的可以去了解下。
最近换了新的工作环境,基本上什么基建都没有(除了技术哈哈),需要独立在本地环境部署一个Nexus服务,而且nexus也升级到了nexus3版本,所以这个任务就落到我身上了。
原本的Nexus部署方式过于麻烦,我们要的用Nexus提供的服务,并不是要做太大的改动。
因此我想到了用Docker的部署方式,方便,快捷…
此文同时在简书发布:https://www.jianshu.com/p/998c9e57fc48
此文同时在CSDN发布:https://blog.csdn.net/nthack5730/article/details/84347849
转载要加原文链接!谢谢支持!
前置准备
服务器或主机一台
- 废话了Docker CE
- 不知道Docker或者没装的朋友可以去Docker官网了解下- 确保
8081
端口没被占用,如果占用了,下面的命令中会告诉大家怎么修改到其他端口
1. 获取Nexus3镜像
首先,先
获取nexus3镜像
,虽然docker在本地找不到对应镜像的时候会去docker hub找对应的镜像。但是还是不建议直接run镜像(可能是代码洁癖)。
运行下面的命令,从中央仓库拉取一个nexus3
的镜像:
docker image pull sonatype/nexus3
Nexus3镜像大小是500M左右,等等吧~~
上面这个是官方的镜像,如果想用别的也可以docker search nexus
看看有没有想用的,将上面命令中sonatype/nexus3
改为你想要的镜像
拉取完成之后,通过下面这条命令可以查看所有的镜像:
docker image ls
2. 运行Nexus3镜像,建立容器
在docker守护线程(后台)运行
nexus3
镜像,建立一个容器,并映射容器8081
端口到宿主机8081
端口,同时设置容器名称为nexus3
建议新手先别急着运行这条命令,看看下面对这条命令的解释。
docker run -d -p 8081:8081 --name nexus3 --restart=always sonatype/nexus3
先解释下这条命令:
-d
:表示在docker守护线程
运行这个镜像;
-p
:表示绑定端口,前面的端口表示宿主机端口
,后面的表示容器端口
,如果宿主机的8081
端口已经被占用了,那么可以改为8082:8081
,为什么后面的是8081
端口?这是Nexus服务自己设定的,可以修改,但是跑docker的话没必要了,下面都是以8081
为nexus的端口;
--restart=always
:这个指定docker重启启动容器
,当服务器或者docker进程重启之后,nexus容器
会在docker守护进程
启动后由docker守护进程启动容器,容器的重启策略很多,大家可以自己去看看对应的资料;
--name <container-name>
:这里是指定了容器
建立后的名称;
最后面的sonatype/nexus3
是镜像名
。
3. 检查nexus3运行情况
Nexus官方提供了检查接口,ping-pong…
curl -u admin:admin123 http://localhost:8081/service/metrics/ping
nexus3初次运行需要几分钟,不一定马上启动马上响应
上面的用户名和密码根据自己本机的用户名密码修改即可
得到pong
响应即表示nexus3启动完成
4. 访问nexus服务页面
以服务端口为8081
为例,访问:http://host:8081/
即可进入nexus
其中host
为服务器的地址,如果是本机
,则IP改为localhost
。
5. 管理Nexus容器
运行之后使用docker container ls
查看你的容器,记住容器名,这就是上面为什么我们要命名容器名为:nexus3
要停止
、启动
、重启
Nexus,是通过容器来管理的:start
、stop
、restart
docker container start nexus3
docker container stop nexus3
docker container restart nexus3
并不是run镜像!!!!!并不是run镜像!!!!!
如果每次都run
镜像的话,那么每次run
都会建立一个新容器、卷
,刚学docker的时候踩过的坑。???
附:设置nexus容器自动启动
很多朋友可能一开始就run
了镜像,没有设置好docker的容器自动启动,只要跑下面的命令更新下重启策略就好:
docker update --restart=always nexus3
语法是:
docker update <policy> <container-name>
相关的策略还有很多,有兴趣的朋友可以去docker官网找找。
Nexus到此部署完成,整个过程不包下载时间的话10分钟都不到。是不是很方便呢?期待大家点个赞哟!谢谢大家支持!
以上是关于Docker快速部署Nexus3的主要内容,如果未能解决你的问题,请参考以下文章
Docker Compose部署Nexus3时的docker-compose,yml代码
EdgeX: 使用最新的 edgex2.0 在 ubuntu 上进行部署,替换私服地址nexus3.edgexfoundry.org 成 docker官方地址,解决下载问题。有了新UI界面