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. JS: 子项可以来回交换的两个下拉列表

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  2. JAVA笔记01 变量的取名

    第2章 有意义的命名2.1 介绍2.2 名副其实 变量名太随意,haha.list1.ok 这些都没啥意义2.3 避免误导 包含List等关键字.字母o与数字0等2.4 做有意义的区分 反面教材,变量 ...

  3. Codeforces Round #619 (Div. 2)

    A. Three Strings 题意:给三个长度相同的非空字符串abc,依次将c中的每个字符和a或者b中对应位置的字符进行交换,交换必须进行,问能否使得ab相同. 思路:对于每一个位置,如果三个字符 ...

  4. MAC设置允许任何来源

    在升级了macOS Sierra (10.12)版本后在“安全性与隐私”中不再有“任何来源”选项 接下来,我们就打开终端,然后输入以下命令: sudo spctl --master-disable 输 ...

  5. HihoCoder第九周 状态压缩 二 与POJ2411总结

    在此我向各位博友求助,特别想知道除了HihoCoder上面的结果要对1e9+7取余之外,这两道题还有什么其他的问题,都是骨牌覆盖问题,都是状态压缩+dp,为什么我能过poj2411的程序过不了Hiho ...

  6. python 输出99乘法表

    for i in range(1,10): for j in range(1,i+1): print("%s*%s=%2s"%(i,j,i*j),end=" " ...

  7. spring-@ResponseBody返回时的编码处理

    下面是一个解决方案 @RequestMapping(value = "/queryall", method = GET, produces = "application/ ...

  8. 八十七、SAP中ALV事件之一,事件的声明

    一.我们双击"REUSE_ALV_GRID_DISPLAY",来到SE37界面, 二,来到这儿,点击SLIS_T_EVENT, 三.可以看到SLIS_T_EVENT的定义,有一个n ...

  9. 【机器学习实战笔记(3-2)】朴素贝叶斯法及应用的python实现

    文章目录 1.朴素贝叶斯法的Python实现 1.1 准备数据:从文本中构建词向量 1.2 训练算法:从词向量计算概率 1.3 测试算法:根据现实情况修改分类器 1.4 准备数据:文档词袋模型 2.示 ...

  10. sql编程利器,Sql Prompt下载及安装方法

    Sql Prompt只能提示及其格式化用起来非常方便: 推荐网址:www.4-yecao.com 免费下载地址:http://download.csdn.net/detail/caizz520/455 ...