nexus3安装 - CentOS7环境

使用nexus3管理docker镜像,配合rancher进行部署。

建资料卷

资料卷默认地址:/var/lib/docker/volumes/资料卷名/_data

docker volume create --name nexus-data //数据目录

docker volume create --name sonatype //安装目录

资料卷命令:

docker volume create

docker volume inspect

docker volume ls

docker volume prune

docker volume rm 
docker run -d -p : -p : -p : -p : -p : --name nexus -v nexus-data:/nexus-data -v sonatype:/opt/sonatype sonatype/nexus3

(其中8081是http默认访问端口,8085是后续要建的docker私库端口,8086是后续要建的docker代理端口,8087是后续要建的docker组端口,8088是配置的ssl/https地址)
  

登录配置

使用浏览器访问

http://服务器ip:8081(例:http://192.168.122.199:8081/

点击右上角登录

账号:admin

密码:存放在 /var/lib/docker/volumes/nexus-data/_data/admin-password 中

修改密码为:123456

修改密码后,把新密码记录下来(password.txt)

[root@localhost ~]# cd /var/lib/docker/volumes/nexus-data/_data
[root@localhost _data]# touch password.txt

安装完成。

配置docker仓库

Repository–>Blob Stores–>Create blob store

Repository-->Repositories-->Create Repository

配置如下

private为私库,上传的镜像在此仓库,

proxy为代理库,当私库不存在镜像时,再去docker hub获取,

group为组合库,实际意义是整合前两个库,对外只暴漏一个地址。

创建 docker(hosted) 类型的 仓库     docker-repo-private

创建 docker(proxy) 类型的 仓库     docker-repo-proxy

创建 docker(group) 类型的 仓库     docker-repo-group

Docker Bearer Token Realm 添加进来,否则https 会出现401未授权

如果允许设置通过匿名的方式拉取镜像的话,这需要在Realms主页激活Docker Bearer Token Reamlm并对匿名方式进行设置,允许通过匿名方式访问服务器。

配置https

参考官方文档:https://help.sonatype.com/repomanager3/private-registry-for-docker

1、安装目录(sonatype) 下的 etc/ssl/下生成自签名证书并导出。

进入目录:

[root@localhost var]# cd /var/lib/docker/volumes/sonatype/_data/nexus/etc/ssl

keytool命令需要安装jdk(jdk安装参考:https://www.cnblogs.com/1285026182YUAN/p/11591824.html):

格式:keytool -genkeypair -keystore keystore.jks -storepass password -keypass password -alias jetty -keyalg RSA -keysize 2048 -validity 5000 -dname "CN=*.{NEXUS_DOMAIN}, OU=Example, O=Sonatype, L=Unspecified, ST=Unspecified, C=US" -ext "SAN=DNS:{NEXUS_DOMAIN},IP:{NEXUS_IP}" -ext "BC=ca:true"
例:  keytool -genkeypair -keystore keystore.jks -storepass password -keypass password -alias jetty -keyalg RSA -keysize 2048 -validity 5000 -dname "CN=*.mestest.cn, OU=Example, O=Sonatype, L=Unspecified, ST=Unspecified, C=US" -ext "SAN=DNS:mestest.cn,IP:192.168.122.199" -ext "BC=ca:true"

问题:

如出现问题:keytool 错误: java.lang.Exception: 未生成密钥对, 别名 <jetty> 已经存在

解决方案:删除目录下的 keystore.jks 和 keystore.cer  文件,重新执行命令即可。

[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# keytool -genkeypair -keystore keystore.jks -storepass password -keypass password -alias jetty -keyalg RSA -keysize -validity -dname "CN=*.mestest.cn, OU=Example, O=Sonatype, L=Unspecified, ST=Unspecified, C=US" -ext "SAN=DNS:mestest.cn,IP:192.168.122.199" -ext "BC=ca:true" Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
[root@localhost ~]#
[root@localhost ~]#

执行以下命令,生成 keystore.cer

keytool -export -alias jetty -keystore keystore.jks -file keystore.cer -storepass password
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# keytool -export -alias jetty -keystore keystore.jks -file keystore.cer -storepass password
存储在文件 <keystore.cer> 中的证书 Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
[root@localhost ~]#
[root@localhost ~]#

2、编辑数据目录(nexus-data)下的 etc/nexus.properties 文件:

设置ssl端口 :application-port-ssl=8088(之前创建容器时已经映射到外部)

设置参数,引入jetty-https.xml:

nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml

[root@localhost ~]# cd /var/lib/docker/volumes/nexus-data/_data/etc
[root@localhost etc]# vim nexus.properties
# Jetty section
# application-port=
# application-host=0.0.0.0nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml
# nexus-context-path=/${NEXUS_CONTEXT} # Nexus section
# nexus-edition=nexus-pro-edition
# nexus-features=\
# nexus-pro-feature
# nexus.clustered=false
application-port-ssl=

编辑安装目录(sonatype)下的 etc/jetty/jetty-https.xml 文件 设置密码为刚才密钥生成的密码 如果是使用默认密码password,则跳过此步骤

4、https配置完成 ,重启nexus容器

配置hosts文件,如不配置直接使用IP也可以。

CentOS7服务器的hosts文件位置:/etc/hosts。

写入配置:

192.168.122.199 mestest.cn

[root@localhost etc]#
[root@localhost etc]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.199 mestest.cn
~
~

https://mestest.cn:8088 登录(如果提示输入账号密码:admin/123456)

https://192.168.122.199:8088 登录

浏览器提示不安全,导出之前的证书安装即可

在nexus 管理界面 配置Base URL 为https 形式

配置Docker客户端,添加自签名证书

1. 全局添加证书

打印证书: keytool -printcert -sslserver mestest.cn:8088 -rfc

如果有root权限,系统级别全局添加证书,把以上打印的内容粘贴到一个crt文件中,放到/usr/local/share/ca-certificates/mestest.cn.crt 位置,执行update-ca-certificates 命令

2.

将之前导出的证书复制到各个docker客户端 /etc/pki/ca-trust/source/anchors/ (centos)

update-ca-trust extract

如果没有 ca-certificates 包的话 可先安装yum install ca-certificates,再启用update-ca-trust enable。

2、配置docker

vim /etc/docker/daemon.json

添加如下内容

{"insecure-registries":["192.168.95.128:8082"]}

systemctl daemon-reload

systemctl restart docker

3、基本操作

docker login 192.168.122.199:8085

输入用户名和密码 如果显示Login Successed证明成功登录。

[root@localhost docker]# docker login 192.168.122.199:
Username: admin
Password:
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 update --restart=always nexus

引用:https://www.jianshu.com/p/ba054bc4f76a

引用:https://cloud.tencent.com/developer/article/1478468

引用:https://www.cnblogs.com/jihongjun/p/8968901.html

引用:http://10.5.30.94:8090/pages/viewpage.action?pageId=9339121

引用:http://10.5.30.94:8090/pages/viewpage.action?pageId=11501778#Docker%E9%83%A8%E7%BD%B2Nexus3%E6%90%AD%E5%BB%BAdocker%E7%A7%81%E5%BA%93%E5%B9%B6%E5%AE%9E%E7%8E%B0%E4%BB%A3%E7%90%86-%E5%9B%9B%E3%80%81%E9%85%8D%E7%BD%AEhttps

nexus3安装 - CentOS7环境的更多相关文章

  1. Docker安装 - CentOS7环境

    Docker安装 - CentOS7环境 安装Docker 我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核 ...

  2. LANMP系列教程之php编译安装CentOS7环境

    前提:必须先安装好MySQL以及Apache   1.准备好源码包并配置好yum源,需要的源码包包括: libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel ...

  3. LANMP系列教程之Apache编译安装CentOS7环境

      1.准备好源码包并配置好yum源,需要的源码包包括:httpd-2.4.18.apr-1.5.2.tar.gz.apr-util-1.5.4.tar.gz 2.准备用户 groupadd -r a ...

  4. LANMP系列教程之MySQL编译安装CentOS7环境

      以MySQL5.5.33版本为例 1.准备工作: 1.首先准备好源代码包 2.并且确保已安装好 "开发工具" 包组和cmake编译工具 3.确保安装好ncurses-devel ...

  5. 使用专业的消息队列产品rabbitmq之centos7环境安装

      我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...

  6. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  7. centos7.2 yum安装lamp环境

    一.准备工作 1.   下载并安装centos7.2,配置好网络环境,确保centos能上网,可以获取到yum源. centos7.2的下载地址:http://pan.baidu.com/s/1eRT ...

  8. Linux centos7环境下安装JDK的步骤详解

    Linux centos7环境下安装JDK的步骤详解 测试root用户下JAVA版本 输入命令:   java –version 1.先到Oracle官网里下载好jdk,网址如下: http://ww ...

  9. Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

随机推荐

  1. 026、MySQL取字符串左边,取字符串右边,取字符串中间,取文本开始位置

    #取文本左边 ); #田 ); #田攀 ); #田攀5 #取文本右边 ); # ); # ); #攀52 #取文本中间 '); #田攀 '); #攀5 #从字符串s中获取s1的开始位置 不忘初心,如果 ...

  2. vue axios的跨域前后端解决方案

    原因出于安全考虑,浏览器有一个同源策略.浏览器中,异步请求的地址与目标地址的协议.域名和端口号三者与当前有不同,就属于跨域请求. 限制跨域访问是浏览器的一个安全策略,因为如果没有这个策略,那么就有被跨 ...

  3. 吴裕雄--天生自然java开发常用类库学习笔记:多线程基础编程

    class MyThread implements Runnable{ // 实现Runnable接口,作为线程的实现类 private String name ; // 表示线程的名称 public ...

  4. 记一次Win上MySQL乱码问题

    Win上MySQL乱码问题 笔记本上的数据库总会时不时的乱码(或者是一直乱码我没注意到?),在谷歌上试了几次错才正确解决,在此记录一下. 在MySQL数据库存储目录找到my.ini,在相应的标签下分别 ...

  5. idea基于springboot搭建ssm(maven)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liboyang71/article/det ...

  6. 微信公众号开发 获取openid时报错40029 invalid code 问题的解决

    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: aELCyY4ce-WOFLAa ...

  7. Linux 安装gcc g++

    Linux版本: cat /proc/version Linux version 3.10.0-693.11.6.el7.x86_64 (mockbuild@x86-041.build.eng.bos ...

  8. Redis 详解 (四) redis的底层数据结构

    目录 1.演示数据类型的实现 2.简单动态字符串 3.链表 4.字典 5.跳跃表 6.整数集合 7.压缩列表 8.总结 上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在 Redis 中, ...

  9. ROS常见问题(三) 报错are you sure it is properly registered and that the containing library is built?

    报错: [FATAL] [1576042404.913706482]: Failed to create the global_planner/GlobalPlanner planner, are y ...

  10. 10.swoole学习笔记--进程队列通信

    <?php //进程仓库 $workers=[]; //最大进程数 $worker_num=; //批量创建进程 ;$i<$worker_num;$i++){ //创建子进程 $proce ...