环境
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了
仓库配置
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。可能有很多细节问题可以交流...
---无业游民🐷