1. 程式人生 > >docker registry帶ssl認證的私有倉庫搭建

docker registry帶ssl認證的私有倉庫搭建

1.首先docker pull registry預設下載最新版的映象,我這邊是2.6.2版本
這裡寫圖片描述
2.這邊考慮私有倉庫部署的伺服器可能沒有網路,可以使用docker save -o registry.tar registry:2.6.2儲存一個映象,然後把registry.tar打包到部署包裡面,下次使用docker load -i registry.tar載入到本地映象
3.保證ssl已安裝,且/ect/ssl/openssl.cnf中關於生成密碼定義的欄位都有(網上可以查)

docker run --entrypoint htpasswd registry:2.6.2 -Bbn ${username} ${password} >
${dir}/auth/htpasswd openssl req -x509 -days 3650 -subj "/C=CN/ST=GuangDong/L=ShenZhen/CN=Registry/O=Company/CN=test.io/" -nodes -newkey rsa:2048 -keyout ${dir}/certs/registry.key -out ${dir}/certs/registry.crt

4.這裡username password是你要設定ssl認證通過的使用者名稱和密碼,這裡需要你自己記住的幾個目錄dir下的auth,certs,data。auth是存放你生成的使用者名稱密碼檔案,certs是存放生成的證書檔案,data後續準備用來掛載私有倉庫的映象存放目錄的

docker run -d -p 5000:5000 --privileged=true --restart=always --name ${name} \
-v ${dir}/config.yml:/etc/docker/registry/config.yml \
-v ${dir}/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=registry on test.io" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v ${dir}/certs:/certs \
-v ${dir}/data:/var/lib/registry \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key registry:2.6.2

這裡的name是你要建立的私有倉庫容器的名字,從掛載的三個目錄我們可以看到是為了一一對應私有倉庫容器內的目錄結構的。這裡我們可以看到私有倉庫容器記憶體放映象的目錄為/var/lib/registry。這裡說一下config.yml的對映原因:

version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        blobdescriptor: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
    delete:
        enabled: true
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

相比預設配置檔案增加了delete:enabled:true選項,這是為了後面使用remote api支援刪除映象的,後面再說,到這裡私有倉庫就建好了。
5.現在要想使用私有倉庫連線私有倉庫並下載映象查詢刪除映象,你的主機需要的條件
/etc/hosts需要有xx.xx.xx.xx test.io的對應關係
/etc/ssl目錄下有certs目錄
你要在你的/etc/docker/certs.d目錄下新建一個資料夾,命名為test.io:5000,然後把私有倉庫${dir}/certs目錄下的registry.crt證書拷貝到test.io:5000資料夾下(我這裡的crt證書名字是registry.crt看上面生成的shell),最後我們使用docker login -u username -p password test.io:5000登陸。就可以開始使用私有倉庫了。
6.如果你要上傳映象的話可以
docker tag test:latest test.io:5000/test:1.0
docker push test.io:5000/test:1.0
7.如果你要下載映象的話可以
docker pull test.io:5000/test:1.0
8.現在要重點說v2版本之後的remote api改變
查詢有哪些映象:curl -s --insecure --user username:password https://test.io:5000/v2/_catalog
這裡curl使用了-s選項,因為有些情況下會出現%Total %Received %Xferd這些狀態資訊
這裡寫圖片描述
查詢映象有哪些tag:curl -s --insecure --user username:password https://test.io:5000/v2/image_name/tags/list
刪除映象:curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json" -I -X HEAD --insecure --user username:password https://test.io:5000/v2/image_name/manifests/image_tag
這裡寫圖片描述
這裡先拿到Docker-Content-Digest的值,後面從sha256都要帶上(注意帶上sha256)

curl --insecure --user username:password -X DELETE https://test.io:5000/v2/image_name/
manifests/sha256:1583251f6052c35180381fbf28e93db0b9a26c2971f45532a5263c5dc4d18b61

這樣刪除就完成了。但是,我測過有一個問題,使用curl刪除之後,你再來使用curl來查詢所有的映象它還是存在的,你使用curl查詢這個映象的tag你會看到tag變為了null,然後你pull也是會失敗的。也就是說你刪除映象僅僅只是阻止了pull,然後查詢那裡只是讓tag變為了null。我自己試過把私有倉庫容器的/var/lib/registry/docker/registry/v2/repositories/下對應映象名字的資料夾刪除掉,再查詢就查不到了。最後刪除了映象還要回收空間,使用docker exec name bin/registry garbage-collect /etc/docker/registry/config.yml,這裡name是你的私有倉庫容器名,/var/lib/registry/docker/registry/v2/blob是存放映象的地方,使用gc垃圾回收這裡的佔用硬碟大小可以看到質的變化,我們可以在這裡看垃圾回收的效果。

相關推薦

docker registryssl認證私有倉庫搭建

1.首先docker pull registry預設下載最新版的映象,我這邊是2.6.2版本 2.這邊考慮私有倉庫部署的伺服器可能沒有網路,可以使用docker save -o registry.

Docker--------registry私有倉庫搭建 [ Http ]

registry docker docker hub 1. 背景 docker中要使用鏡像,一般會從本地、docker Hup公共倉庫和其它第三方公共倉庫中下載鏡像,一般出於安全和外網(墻)資源下載速率的原因考慮企業級上不會輕易使用。那麽有沒有一種辦法可以存儲自己的鏡像的倉庫呢? ----&

[Docker] Docker 私有倉庫搭建教程(使用者驗證)

1.  基礎環境 作業系統:CentOS/Redhat 7 x86-64       Docker:1.12.6 2.  搭建步驟(伺服器端) 2.1  下載 Registry 映象 # docker pull registry:2.5 2.2  生成 使用者名稱/密碼

docker私有倉庫搭建 使用Portus管理docker registry 私有倉庫

 到此,Portus的安裝已經完成。 但是配置還沒有完成,修改修改docker的配置檔案 5,修改docker配置檔案 vim /lib/systemd/system/docker.service 將 --insecure-registry 192.168.223.132:5000 加到ExecSt

Docker Registry私有倉庫搭建

nco transfer api ret com and mach reg mman 部署registry 準備一個registry.mydocker.com 的證書 對私有registry取名registry.mydocker.com 啟動registry容器 [root

Docker私有倉庫搭建

docker 私有倉庫 由於公有倉庫有時連接會出現超時,下載速度慢等情況故搭建私有倉庫鏡像server端可以login官方的Doker Hub,可以pull,push和私有倉庫但client只能操作自己搭建的倉庫server 192.168.127.142client 192.168.1

docker-ce私有倉庫搭建

-i kernel perf process fault 系統 status secure nco 說明:本文中私有倉庫的ip地址為10.10.172.203:5000,操作系統為CentOS7.2;服務端:10.10.172.203/241、從Docker官方倉庫裏下載r

CentOS 7 : Docker私有倉庫搭建和使用

docker reg expect use 啟動 倉庫 AR 通過 sel 系統環境: CentOS 7.2 192.168.0.179:docker倉庫 192.168.0.60:客戶端 安裝並啟動docker yum -y install docker system

Centos7 Docker私有倉庫搭建

Centos7 Docker私有倉庫搭建Centos7 Docker私有倉庫搭建 倉庫:集中存放鏡像的地方,可分為公共倉庫和私有倉庫(公共倉庫"http://hub.docker.com"或國內的"http://www.daocloud.io") 註冊服務器才是存放倉庫具體的服務器

Docker 私有倉庫搭建

down mark xen eric minutes ont gist epo man 我們在使用Docker時 下載鏡像一般都是在外網下載並使用。可是當我們沒有外網時我們不得不自己搭建私有倉庫。先看下流程圖: 下面我們開始搭建 私有倉庫1、安裝docker,並設置為開機自

Docker 私有倉庫搭建

訪問 本地 nginx 技術分享 director int 引用 dig ani 轉自:https://www.cnblogs.com/Tempted/p/7768694.html 環境準備 環境:兩個裝有Docker 17.09.0-ce 的centos7虛擬機 虛擬機一

Docker 18.03私有倉庫搭建

外網 repos shadow iges -o test rime mct ted 我們在使用Docker時 下載鏡像一般都是在外網下載並使用。可是當我們沒有外網時我們不得不自己搭建私有倉庫。流程圖:docker 版本[root@docker ~]# docker vers

Docker私有倉庫搭建

問題 很多 過程 load images fig.yml 實現 添加 接口 1 概述本文將介紹兩種方法搭建docker私有倉庫:基於docker-distribution 和 基於 harbor 搭建2 基於docker-distribution 的搭建docker

Docker 鏡像創建、私有倉庫搭建和數據管理

naconda 清除緩存 pro 管理操作 med recreate 環境變量 rom down Docker 鏡像的創建方法 Docker 鏡像除了是 Docker 的核心技術之外也是應用發布的標準格式。一個完整的 Docker 鏡像可以支撐一個 Docker 容器的運

docker私有倉庫搭建及使用

  1、下載官方映象 sudo docker pull registry 下載完成後,docker images可以檢視到pull下來的映象registry    2、啟動registry容器,用於提供私有倉庫服務 docker run --name docker-r

使用docker搭建高併發網站架構實踐1--Docker簡介以及私有倉庫搭建

1.Docker簡介     Docker是一種作業系統容器虛擬化技術,可以理解為在作業系統的級別上虛擬出更多的虛擬主機來打包以及部署應用等。具體Docker的實現與LXC支援有很大關係,主要技術有名稱空間,控制組以及檔案聯合系統等。主要架構如下所示:   &n

CentOS7 K8S Docker私有倉庫搭建使用簡錄

簡單說明: 在搭建部署K8S時,需要從牆外的k8s.gcr.io、gcr.io和quay.io等映象倉庫下載映象 這個時候就需要科學上網了,但並不是所有的環境都能夠科學上網,這個時候就需要搭建私有映象倉庫 本博文首先介紹基於Harbor構建私有映象倉庫的步驟和簡單使用過程 官方文件:

docker私有倉庫搭建harbor

1、安裝docker-compose $ yum -y install epel-release $ yum -y install python-pip   $ pip install docker-compose

基於centos6.7的docker私有倉庫搭建

1 倉庫配置https認證 cd /etc/docker/ mkdir certs [root@docker01 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/docker01.key -x509 -days 365

Docker 離線安裝 & 離線私有倉庫搭建總結

一、前提 docker,這邊我不想說太多了,相信大家也都瞭解了。但是由於網路限制等因素。因此想要將原先外網部署的docker環境拉倒內網部署。這邊簡要說下步驟吧!  二、離線獲取docker所有RPM包 1、安裝mini版本的centos 7環境 新環境主要是