<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    逝者如斯夫

    靜而思之
    數(shù)據(jù)加載中……

    Docker Registry 安裝和運行

    使用場景

    • 內(nèi)部網(wǎng)絡(luò),無法訪問 Docker Hub
    • 控制 image 的存儲方式和存儲位置
    • 控制 image 的部署流程
    • 內(nèi)部開發(fā)流程需要集成控制 image 的部署和存儲

    應用邏輯示意圖:

    ?

    安裝 Registry 服務

    概要

    Docker Registry 在 docker hub 的名稱是 registry。v1 版本的源碼地址 github.com/docker/docker-registry 已經(jīng)廢棄,v2 版本源碼地址在 github.com/docker/distribution,對應的 API 是 Docker Registry HTTP API V2

    以下安裝沒有使用 HTTPS 方式,啟用 HTTPS 相關(guān)的證書配置參考這個文檔:

    官方文檔參考:

    最簡安裝(啟動)

    docker run -d -p 5000:5000 --name registry registry:2
    

    以上命令未使用用戶名密碼登錄策略。

    啟用登錄密碼

    生成密碼

    登錄密碼可以通過 host 的文件傳入,以下命令調(diào)用容器的 htpasswd 命令生成密碼文件:

    mkdir auth
    docker run --entrypoint htpasswd registry:2 \
        -Bbn <USER_NAME> <PASSWORD> > auth/auth.htpasswd
    

    啟用密碼

    通過 –volume 參數(shù)傳入密碼文件:

    docker run -d -p 5000:5000 --restart=always --name registry \
      --volume `PWD`/auth:/auth \
      --env "REGISTRY_AUTH=htpasswd" \
      --env "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
      --env REGISTRY_AUTH_HTPASSWD_PATH=/auth/auth.htpasswd \
      registry:2
    

    修改鏡像存儲

    默認鏡像數(shù)據(jù)存儲在 Docker Volume 中,可以通過 bind mount 進行修改,參數(shù)信息參考 Volume文檔。下面的例子將本機目錄 PWD/images 綁定到容器的 /var/lib/registry

    docker run -d -p 5000:5000 \
        --name auth-registry \
        -v `PWD`/images:/var/lib/registry \
        -e SQLALCHEMY_INDEX_DATABASE=sqlite:////opt/docker-image/docker-registry.db \
        -e STORAGE_PATH=/opt/docker-image \
        --restart=always \
        docker.onestch.com:5000/admin/registry:0.1
    

    默認的存儲引擎為本地文件系統(tǒng),可以修改文件的存儲引擎為 Amazon S3 bucket、Google Cloud Platform 或其他引擎,可以通過配置 config.yml 的方式修改存儲配置,更多信息參考 Docker Registry 存儲配置文檔

    停止服務

    停止 registry 容器并清理運行數(shù)據(jù)

    docker stop registry && \
    docker rm -v registry
    

    驗證

    查看容器信息

    docker ps --no-trunc
    

    查看全部配置信息或部分信息

    docker inspect <CONTAINER_ID> 
    
    docker inspect <CONTAINER_ID> | grep -C3 -e "Volumes\":"
    docker inspect <CONTAINER_ID> | grep -C2 Binds
    docker inspect -f '{{ .Mounts }}' <CONTAINER_ID>
    

    查看映射的詳細信息

    docker volume inspect 4496b0a257b966052ef8d0743014a4f63fc9924251c8de0df0e9c70fde4c45e6
    

    發(fā)布鏡像

    登錄服務

    如果安裝(啟動)的 registry 服務需要登錄訪問時,執(zhí)行:

    docker login <REGISTRY_HOST>:<REGISTRY_PORT>
    

    輸入安裝時設(shè)定的用戶名密碼。

    目標地址

    使用 docker tag 設(shè)定鏡像的目標地址,鏡像的目標地址包括三部分

    <HOST_NAME>[:<HOST_PORT>]/<IMAGE_NAME>:<IMAGE_VERSION>
    
    • HOST_NAME : HOST_PORT

      目標 registry 服務地址,缺省時使用官方 docker hub 的地址 registry-1.docker.io,且不允許包含下劃線

    • IMAGE_NAME 發(fā)布目標鏡像名稱

    • IMAGE_VERSION 發(fā)布目標鏡像版本

    例如:repo.company.com:3456/myapp:0.1

    發(fā)布鏡像

    發(fā)布的鏡像文件可以從 docker hub 中 Pull 或者本地使用 Dockerfile build 獲得

    Pull

    docker pull registry
    

    Build

    docker build -t docker.onestch.com:5000/admin/registry:0.1 .
    

    首先需要對鏡像 tag 設(shè)定目標倉庫,如果 build 的時候已經(jīng)設(shè)置了目標地址,可以不用進行 tag 操作

    docker tag registry:latest docker.onestch.com:5000/admin/registry:0.1
    

    然后 Push

    docker push docker.onestch.com:5000/admin/registry:0.1
    

    驗證

    重新從私有倉庫中獲取鏡像

    docker pull localhost:5000/admin/registry:0.1
    
    0.1: Pulling from admin/registry
    Digest: sha256:d738e358b6910d3a53c9c7ff7bbb5eac490ab7a9b12ffb4c1c27f2c53aae9275
    Status: Image is up to date for localhost:5000/admin/registry:0.1
    

    安裝 Registry UI

    選擇 registry ui,可選的有 atcol/docker-registry-uihyper/docker-registry-webkonradkleine/docker-registry-frontend

    安裝運行

    針對 hyper/docker-registry-web,使用 BASIC 認證,未使用 HTTPS的情況

    docker run -it -p 8080:8080 \
        --rm \
        --name registry-web \
        --link auth-registry \
        -e REGISTRY_URL=http://auth-registry:5000/v2 \
        -e REGISTRY_AUTH_ENABLED=false \
        -e REGISTRY_BASIC_AUTH=YWRtaW46MTIzNDU2 \
        -e REGISTRY_NAME=docker.onestch.com:5000 hyper/docker-registry-web
    

    命令中 auth-registry 是自定的 registry 鏡像。

    使用 HTTPS 時需要傳入 /config/auth.key 文件,或自定義 config.xml 配置,例如:
    docker run -it -p 8080:8080 –name registry-web \
    –link auth-registry \
    -v $(pwd)/config.yml:/conf/config.yml:ro \
    hyper/docker-registry-web

    管理界面

    建立了 registry 服務后,對 registry 的管理界面在本機的訪問地址是http://localhost:8080,一般 ui 服務會和 registry 服務同樣運行在私有網(wǎng)絡(luò),所以我們可以發(fā)布 registry ui 到 registry 服務器再運行。

    docker tag docker.io/hyper/docker-registry-web docker.onestch.com:5000/admin/docker-registry-web
    
    docker push docker.onestch.com:5000/admin/docker-registry-web
    

    查看 UI 界面如下圖

    ?

    posted on 2018-08-03 11:49 ideame 閱讀(1296) 評論(0)  編輯  收藏 所屬分類: ConfigurationScript

    主站蜘蛛池模板: 亚洲乱色熟女一区二区三区丝袜 | 国产精品亚洲片在线va| 91免费国产视频| 日韩亚洲一区二区三区| 免费国产成人午夜在线观看| 精品国产亚洲一区二区三区 | 高潮毛片无遮挡高清免费| 日韩精品视频免费在线观看| 亚洲av无码一区二区三区四区| 日韩免费三级电影| 免费国产污网站在线观看不要卡| 亚洲日韩涩涩成人午夜私人影院| 中文毛片无遮挡高清免费| 国产亚洲美女精品久久久久狼 | 亚洲丶国产丶欧美一区二区三区 | 最新亚洲成av人免费看| 成人无码精品1区2区3区免费看| 国产亚洲一区二区手机在线观看 | 午夜爱爱免费视频| 思思久久99热免费精品6| 国产日产亚洲系列| 99热这里有免费国产精品| 亚洲制服丝袜第一页| 国产一级大片免费看| 在线成人精品国产区免费| 亚洲综合综合在线| 国产又大又黑又粗免费视频 | 成人免费观看一区二区| 亚洲欧洲精品成人久久曰| 亚洲精品成人久久久| 午夜精品一区二区三区免费视频| 亚洲av乱码一区二区三区| 免费人成年激情视频在线观看| 国产成年无码久久久免费| 亚洲av日韩av综合| 亚洲国产精品人人做人人爽| 95免费观看体验区视频| 精品亚洲成A人在线观看青青| 久久亚洲AV午夜福利精品一区| 成人免费福利电影| av永久免费网站在线观看|