Nginx代理搭建Docker本地鏡像倉庫

一、安裝Docker

詳細(xì)安裝可以查看 Linux安裝Docker

二、為Docker倉庫設(shè)置賬號密碼

1. 安裝htpasswd 工具

  • Ubuntu/Debian
sudo apt install apache2-utils -y
  • CentOS/RHEL
sudo yum install httpd-tools -y
# 創(chuàng)建賬號
mkdir -p /home/docker/auth

# 創(chuàng)建密碼
htpasswd -Bbn username password >/home/docker/auth/htpasswd

# 添加其他賬號
htpasswd -Bb /home/docker/auth/htpasswd another_user another_password

# 設(shè)置權(quán)限
chmod 600 /home/docker/auth/htpasswd
  • 賬號密碼文件:/home/docker/auth/htpasswd
  • user:賬號
  • password:密碼

四、registry容器

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /home/docker/registry:/var/lib/registry/docker/registry \
  -v /home/docker/auth:/auth \
  -e REGISTRY_AUTH=htpasswd \
  -e REGISTRY_AUTH_HTPASSWD_REALM="Basic Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH="/auth/htpasswd" \
  registry
  • -d:指定 Registry 容器在后臺運(yùn)行;
  • -p 5000:5000:指定 Registry 容器監(jiān)聽的宿主機(jī)中的端口號以及在容器中使用的端口號
  • --restart=always:設(shè)置開機(jī)運(yùn)行
  • --name registry:指定容器的名稱
  • -v /home/docker/registry:/var/lib/registry:主機(jī)目錄掛載到容器中,這是容器存儲目錄
  • -v /home/docker/auth:/auth:主機(jī)目錄掛載到容器中,這是密碼驗(yàn)證
  • -e:賬號密碼驗(yàn)證配置

五、安裝Nginx配置 SSL

  • CentOS 安裝 nginx
yum install -y nginx
  • Ubuntu 安裝 nginx
apt install -y nginx

配置 vim /etc/nginx/conf.d/dockerhub.conf

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name 自己的域名;
    #ssl on;
    ssl_certificate /etc/nginx/conf.d/key/自己的域名.pem;
    ssl_certificate_key /etc/nginx/conf.d/key/自己的域名.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     #指定SSL服務(wù)器端支持的協(xié)議版本
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;    #在使用SSLv3和TLS協(xié)議時指定服務(wù)器的加密算法要優(yōu)先于客戶端的加密算法

    error_page 497 301 =307 https://$host:$server_port$request_uri;

    location / {
        proxy_pass         http://localhost:5000;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
        client_max_body_size 2000M;
    }
}

六、測試

找另一臺docker測試機(jī)

root@zngw:~# docker login 域名
Username: 用戶名
Password: 密碼
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/#credential-stores

Login Succeeded
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容