作用:Nginx做反向代理,在访问私有仓库时加个密码验证,密码用htpasswd生成
IP:192.168.0.227
1.下载registry2.0镜像
docker pull registry:2.1.1
2.安装Nginx
yum -y install nginx
3.创建docker仓库数据和配置目录
sudo mkdir -p /opt/docker/registry/data sudo mkdir -p /opt/docker/registry/conf
4.运行docker仓库
docker run -d -p 5000:5000 -v /opt/docker/registry/data:/tmp/registry --name registry docker.io/registry:2.1.1
5.基于htpasswd创建访问仓库的账户密码
yum -y install httpd-tools #htpasswd是apache的工具 htpasswd -c /opt/docker/registry/conf/docker-registry.htpasswd jack 第一次创建需要加-c htpasswd /opt/docker/registry/conf/docker-registry.htpasswd user2
6.配置Nginx
vim /etc/nginx/nginx.conf # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘ ‘$status $body_bytes_sent "$http_referer" ‘ ‘"$http_user_agent" "$http_x_forwarded_for"‘; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; upstream webserver { #webserver为自定义,被下边调用 server 192.168.0.227:5000; #写要代理的IP:PORT } server { listen 8080 default_server; #这里定义访问端口:http://192.168.0.227:8080/v2 location / { auth_basic "please input username/password sina"; auth_basic_user_file /opt/docker/registry/conf/docker-registry.htpasswd; proxy_pass http://webserver; #调用上边的webserver } } server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
7.测试:
输入http://192.168.0.227:8080/v2 #因为配置文件中定义了8080
时间: 2024-08-06 18:23:25