nexus3 配置docker代理仓库

·  阅读 2171

环境

Docker version 1.13.1, build 94f4240/1.13.1

keystore.jks

centos 7.2

出现问题描述如下:因为之前一直是用registry配置仓库所以,切换后需要logou 在用admin/admin123 登入nexus

解决的核心问题

启动nexus

docker run -d -p 8881:8081 -p 8443:8443 -p 8083:8083 -p 5000:5000 --restart=always --name nexus -v $PWD/nexus-data:/nexus-data sonatype/nexus3:3.15.2

其中 8881 为http访问端口 8443 为https访问端口 5000 为本地仓库注册端口 8083 为代理仓库访问端口

ssl 配置

根据官网配置help.sonatype.com/repomanager…

生成 keystore.jks

keytool -genkeypair -keystore keystore.jks -storepass password -keypass password -alias jetty -keyalg RSA -keysize 2048 -validity 5000 -dname "CN=*.master, OU=Example, O=Sonatype, L=Unspecified, ST=Unspecified, C=US" -ext "SAN=DNS:master,IP:192.168.1.4" -ext "BC=ca:true"

其中master为域名 192.168.1.4为ip地址

移动 keystore.jks

在nexus-data/etc 目录下创建 ssl 目录 拷贝keystore.jks 进去

修改nexus.properties

nexus-data/etc目录下

# Jetty section
#application-port=8081
#application-port-ssl=8081
#application-host=0.0.0.0
#nexus-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}

secureScheme=https
securePort=8443
application-port=8081
application-port-ssl=8443
#application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml,${jetty.etc}/jetty-https.xml
ssl.etc=${karaf.data}/etc/ssl
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
  nexus-pro-feature
 nexus.clustered=false

包含这个${jetty.etc}/jetty-http-redirect-to-https.xml就所有http都转到https

去掉${jetty.etc}/jetty-http.xml

就禁用了http

生成客户端证书

keytool -printcert -sslserver master:8443 -rfc

master为nexus主机名

8443为端口

生成客户端证书

keytool -export -alias jetty -keystore keystore.jks -file keystore.cer -storepass password

Docker导入

cp keystore.cer /etc/pki/ca-trust/source/anchors/

update-ca-trust extract

浏览器导入

设置->安全ssl 处导入生成的keystore.cer 就不会显示不安全的https了

仓库配置

根据天朝的各种copy博客可能也是ok但是没有告诉你是通过browse 查看具体有没有拉取成功

group库自由本地库的容器信息,第三方库的容器就具体到第三方库里头显示

登入

本地仓库

docker login -u admin -p admin123 192.168.1.4:5000

group代理仓库

docker login -u admin -p admin123 192.168.1.4:8083

pull 只能pull到本地仓库 192.168.1.4:5000 以做tag开头

无法登入

vi /etc/sysconfig/docker

把--insecure-registry 192.168.1.4:5000 去掉这是最初用resitry做仓库遗留的

cat /etc/docker/daemon.json 这是我的仓库地址配置

{
    "registry-mirrors": ["https://192.168.1.4:8083"],
    "insecure-registries":["192.168.1.4:8083","192.168.1.4:5000"]
}

无法拉取

vi /etc/containers/registries.conf

我这边老实无法拉取 最后修改此处后

docker pull alpine:3.6

等拉取就会根据group代理优先通过hub库加载在browse可以看到

我的步骤可能有些多余,但至少验证是能正常代理使用了,不想那些cp党要配置啥v2ray。可能有很多细节问题可以交流...

---无业游民🐷

分类:
开发工具
标签:
分类:
开发工具
标签:
收藏成功!
已添加到「」, 点击更改