Docker随手记3 - 基于Docker搭建Ubuntu下私服Nexus3
2020/6/30 17:27:31
本文主要是介绍Docker随手记3 - 基于Docker搭建Ubuntu下私服Nexus3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、概述
Nexus3可以支持Maven、Docker、NuGet、npm、Bower等,作为一个稳定的私服产品常常用于我们开发管理过程中。
用Nexus搭建本地私服有如下好处:
- 加速构建、稳定
- 节省带宽
- 统一控制,方便监管
- 可以部署自定义构件
这些优点使得Nexus日益成为主流的仓库管理器之一
闲话少叙,上图
二、Nexus镜像安装
Nexus2 还是 Nexus3
Nexus3.x 相较 2.x 版本有很大的改变
- 从底层重构,从而提高性能,增强扩展能力,并改善用户体验
- 升级界面,增加更多的浏览,搜索和管理功能
- 增加 Docker,NuGet,npm,Bower的支持
- 提供新的管理接口,从而能自动管理任务
nexus3安装
1.下载Nexus3的镜像
访问hub.docker.com/,搜索nexus如下图
选择第一个,官方原装进口版本,执行如下命令,我这里已经下载好了
root@surging:~# docker pull sonatype/nexus3 Using default tag: latest latest: Pulling from sonatype/nexus3 Digest: sha256:3262783b5f44c6265cf867b390e84a643b855873b2018c0d28037d7cd29a89cf Status: Image is up to date for sonatype/nexus3:latest docker.io/sonatype/nexus3:latest 复制代码
2.使用镜像启动一个容器
$ docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /home/nexus/nexus-data:/nexus-data --restart=always sonatype/nexus3复制代码
- 8082端口是用于host镜像仓库的服务端口
- 8083端口用户group镜像仓库的服务端口
- 8081 端口是nexus的服务端口
- --name nexus3
- -v /home/nexus/nexus-data:/nexus-data 将容器内nexus-data数据文件夹挂载到宿主机/home/nexus/nexus-data目录下
- sonatype/nexus3 镜像名,如果后面不加版本号,则默认启动latest版本
注意 --restart=always:
加上这个指令不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
- no :容器退出时不要自动重启。这个是默认值。
- on-failure[:max-retries] : 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
- always :不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
- unless-stopped :不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。
启动之后我们就可以通过http://服务器IP:8081访问,相关界面如下图
nexus3默认的账号依旧是admin但是密码已经变了具体的密码存储在nexus3的容器的nexus-data路径内的admin.password文件内
具体操作:
a. 查看nexus3容器id,执行 docker ps
控制台显示
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2bc9db68ba83 elasticsearch:5.6.16 "/docker-entrypoint.…" 2 weeks ago Up 2 weeks 0.0.0.0:19200->9200/tcp, 0.0.0.0:19300->9300/tcp es5 01b398d530aa sonatype/nexus3 "sh -c ${SONATYPE_DI…" 2 weeks ago Up 2 weeks 0.0.0.0:8081-8083->8081-8083/tcp nexus3 e3a1b31ed4f4 registry:2 "/entrypoint.sh /etc…" 5 months ago Up 2 weeks 0.0.0.0:5000->5000/tcp registryb复制代码
b. 进入容器控制台执行 docker exec -it 01b398d530aa bash
控制台显示
docker exec -it 01b398d530aa bash bash-4.4$ ls bin boot dev etc help.1 home lib lib64 licenses lost+found media mnt nexus-data opt proc root run sbin srv sys tmp uid_entrypoint.sh uid_template.sh usr var bash-4.4$ cd nexus-data/ bash-4.4$ ls admin.password db generated-bundles karaf.pid log restore-from-backup blobs elasticsearch instances keystores orient tmp cache etc javaprefs lock portad复制代码
admin.password中的第一行就是密码,复制密码使用admin登录,登录成功之后系统会自动提示你更换admin密码
三、Nexus创建Docker私有仓库
通过浏览器访问Nexus
http://服务器IP:8081
登录nexus
点击右上角进行登录,密码就是你刚才设置的密码:
Create repository
点击设置界面,选择Repositories,点击Create repository,如下图所示:
选择仓库类型
这里Docker有三种类型,分别是group、hosted、proxy。选择docker(hosted),如下图:
注:Docker镜像仓库类型含义解释如下:
- hosted : 本地存储,即同docker官方仓库一样提供本地私服功能
- proxy : 提供代理其他仓库的类型,如docker中央仓库
- group : 组类型,实质作用是组合多个仓库为一个地址
创建host仓库
指定docker仓库的名称、指定一个端口用来通过http的方式进行访问仓库、勾选是否支持docker API V1,然后create repository;
验证仓库
我本地已经登录过仓库了,直接显示成功,帐号密码可以使用admin,也可以在nexus中自行配置,这里就不赘述了
docker login 10.10.1.10:8082 Authenticating with existing credentials... WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded复制代码
上一篇:Docker随手记2 - 配置阿里镜像加速器,基于Ubuntu18.04LTS
这篇关于Docker随手记3 - 基于Docker搭建Ubuntu下私服Nexus3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19Docker-Compose容器集群化项目实战:新手入门指南
- 2024-11-19Docker镜像仓库项目实战:新手入门教程
- 2024-11-19Docker容器化部署项目实战:新手入门教程
- 2024-11-19Docker-Compose容器集群化资料入门教程
- 2024-11-19Docker镜像仓库资料详解:新手入门教程
- 2024-11-19Docker容器化部署资料:新手入门指南
- 2024-11-19Docker-Compose容器集群化教程:从入门到实践
- 2024-11-19Docker镜像仓库教程:新手入门指南
- 2024-11-19Docker容器化部署教程:初学者指南
- 2024-11-18Docker-Compose容器集群化入门教程