docker安装nexus:
docker run -d -p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
--name nexus \
-v /data/nexus-data:/nexus-data \
-v /etc/hosts:/etc/hosts \
-v /etc/localtime:/etc/localtime \
--restart unless-stopped \
sonatype/nexus3
登录nexus创建blob存储数据:
创建docker(hosted) 类型的仓库:
name:标识,自定义
HTTP:自定义本地没使用的端口
docker registry api:支持docker仓库api。
blob store:关联自己创建的blob image.
allow redepoly:允许部署更新。
未使用https,所以定义默认的安全docker 仓库:
[root@localhost nexus-data]# cat /etc/docker/daemon.json
{
"insecure-registries":["10.86.8.14:8082"]
}
[root@localhost nexus-data]# systemctl restart docker
通过ip登录nexus的docker仓库:
[root@localhost nexus-data]# docker login -u admin -p admin 10.86.8.14:8082
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
nginx代理参考:https://help.sonatype.com/repomanager3/nexus-repository-administration/formats/docker-registry/docker-repository-reverse-proxy-strategies
">
https://help.sonatype.com/repomanager3/nexus-repository-administration/formats/docker-registry/docker-repository-reverse-proxy-strategies
配置nginx代理nexus的docker仓库地址:
报错dns解析hub.mengerwei.xyz失败。
[root@localhost conf.d]# docker login -uadmin -p admin hub.mengerwei.xyz
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://hub.mengerwei.xyz/v2/": dial tcp: lookup hub.mengerwei.xyz on 10.86.30.1:53: no such host
解决:
本地/etc/hosts增加解析:
[root@localhost conf.d]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.86.8.14 hub.mengerwei.xyz
docker push镜像到nexus的docker仓库:
报错:请求头太大了。
[root@localhost conf.d]# docker tag redis:latest hub.mengerwei.xyz/redis:latest
[root@localhost conf.d]# docker push hub.mengerwei.xyz/redis:latest
The push refers to repository [hub.mengerwei.xyz/redis]
8e5669d83291: Pushed
9975392591f2: Pushed
529cdb636f61: Pushing [==================================================>] 27.75MB/27.75MB
4b8e2801e0f9: Pushing [==================================================>] 4.274MB
9b24afeb7c2f: Pushing [==================================================>] 338.4kB
2edcec3590a4: Pushing [==================================================>] 80.37MB/80.37MB
error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body>\r\n<center><h1>413 Request Entity Too Large</h1></center>\r\n<hr><center>nginx/1.20.2</center>\r\n</body>\r\n</html>\r\n"
解决:
nginx代理,修改client_max_body_size 200m
[root@localhost conf.d]# cat www.conf
server {
listen 443 ssl;
server_name hub.mengerwei.xyz;
client_max_body_size 200m;
#ssl on;
ssl_certificate /etc/nginx/cert/6852496_hub.mengerwei.xyz.pem;
ssl_certificate_key /etc/nginx/cert/6852496_hub.mengerwei.xyz.key;
# Docker /v2 and /v1 (for search) requests
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto "https";
proxy_pass http://10.86.8.14:8082;
}
}
镜像push上传成功:
[root@localhost conf.d]# systemctl restart nginx
[root@localhost conf.d]# docker push hub.mengerwei.xyz/redis:latest
The push refers to repository [hub.mengerwei.xyz/redis]
8e5669d83291: Layer already exists
9975392591f2: Layer already exists
529cdb636f61: Pushed
4b8e2801e0f9: Pushed
9b24afeb7c2f: Layer already exists
2edcec3590a4: Pushed
latest: digest: sha256:563888f63149e3959860264a1202ef9a644f44ed6c24d5c7392f9e2262bd3553 size: 1573