使用 Nexus 搭建 Docker Registry
安装
docker run -d --name nexus_docker \
--restart=always \
-p 8081:8081 \
-p 8082:8082 \
--mount src=nexus-docker-data,target=/nexus-data \
sonatype/nexus3
数据目录:/var/lib/docker/volumes
使用 SSH 隧道进行初始化
ssh -L 8081:127.0.0.1:8081 -N -T YOUR_SERVER_DOMAIN
浏览器进入 http://127.0.0.1:8081
创建 Docker Repository
Setting[小齿轮] ->
Repositories ->
Create repository ->
docker(hosted) ->
HTTP 填 8082
开启 Docker Token Realms
Setting[小齿轮] ->
Security ->
Realms ->
激活 Docker Bearer Token Realm
Nginx HTTPS
server {
server_name YOUR_SERVER_DOMAIN;
listen 443 ssl http2;
ssl_certificate /etc/ssl/YOUR_SERVER_DOMAIN.crt;
ssl_certificate_key /etc/ssl/YOUR_SERVER_DOMAIN.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
client_body_buffer_size 512k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 128k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 512k;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:8082;
proxy_read_timeout 900s;
}
error_page 500 502 503 504 /50x.html;
}
Docker Login
docker login YOUR_SERVER_DOMAIN -u admin -p YOUR_PASSWORD