1. 程式人生 > >Docker搭建帶有訪問認證的私有倉庫

Docker搭建帶有訪問認證的私有倉庫

size nds web -o ott 倉庫 system 鏈接 github

2017年06月10日 17:30:26 閱讀數:2581

以下步驟均為本人親自踩坑,歷經數次失敗,最終搭建成功
一、環境信息:
操作系統:CentOS 7
Docker版本:1.12.5 (更高版本應該類似)
registry:2.4.1
registry-web: hyper/docker-registry-web:latest
二、搭建步驟:
1、拉取鏡像registry(倉庫)和registry-web(用於訪問倉庫的UI界面):

docker pull hyper/docker-registry-web
docker pull registry:2.4.1
  • 1
  • 2
  • 3

2、下載docker-compose(一種簡化復雜容器應用的利器,具體使用可參見官網)
官網下載鏈接:https://docs.docker.com/compose/install/
懶人可以直接使用下面的命令即可下載

curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 1
  • 2

下載完成後更改docker-compose的權限:

chmod 755 /usr/local/bin/docker-compose
  • 1
  • 2

3、創建幾個目錄,用於存放配置文件和作為私有倉庫的鏡像存儲目錄

mkdir -p /data/registry_dir/conf/registry   #存放倉庫的配置信息
mkdir -p /data/registry_dir/conf/registry-web #存放倉庫UI界面的配置信息
mkdir -p /data/registry_dir/registry  #存放倉庫的鏡像
mkdir -p /data/registry_dir/db  #倉庫的訪問信息
  • 1
  • 2
  • 3
  • 4
  • 5

4、生成證書

openssl req -new -newkey rsa:4096 -days 365                 -subj "/CN=localhost"                 -nodes -x509                  -keyout /data/registry_dir/conf/registry-web/auth.key                 -out /data/registry_dir/conf/registry/auth.cert
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5、創建yml配置文件
###創建倉庫的配置文件
vim /data/registry_dir/conf/registry/config.yml

version: 0.1

storage:
  filesystem:
    rootdirectory: /var/lib/registry

http:
  addr: 0.0.0.0:5000

auth:
  token:
    realm: http://localhost:8080/api/auth
    service: localhost:5000
    issuer: ‘admin‘
    rootcertbundle: /etc/docker/registry/auth.cert
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

###創建倉庫UI的配置文件
vim /data/registry_dir/conf/registry-web/config.yml

registry:
    url: http://registry-srv:5000/v2
    name: localhost:5000
    readonly: false
    auth:
        enabled: true
        issuer: ‘admin‘
        key: /conf/auth.key
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

###創建docker-compose啟動配置文件
vim /data/registry_dir/docker-compose.yml

version: ‘2‘
services:
  registry-web:
    image: hyper/docker-registry-web:latest
      ports:
        - 8080:8080
      volumes:
         - /data/registry_dir/conf/registry-web:/conf:ro
         - /data/registry_dir/db:/data
     networks:
       - registry-net
     depends_on:
        - registry
     restart: always
registry:
  image: registry:2.4.1
  ports:
    - 5000:5000
  volumes:
    - /data/registry_dir/conf/registry:/etc/docker/registry:ro
    - /data/registry_dir/registry:/var/lib/registry
  environment:
    - REGISTRY_STORAGE_DELETE_ENABLED=true
  networks:
    - registry-net
  restart: always
networks:
  registry-net:
  #driver: default
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

6、啟動容器

docker-compose up -d
  • 1
  • 2

搭建完成,查看鏡像運行情況:docker ps | grep registry
正常運行的話,接下來就可以愉快的訪問你的鏡像倉庫了,打開瀏覽器,輸入localhost:8080(從其他機器訪問該倉庫的話,輸入ip:port的方式就可以)默認用戶名密碼是admin/admin
技術分享圖片

也可以從後臺驗證配置是否準確:

docker login localhost:5000
  • 1
  • 2

輸入正確的用戶密碼會提示:
技術分享圖片

如果密碼錯,則會提示:
技術分享圖片

至此,帶有訪問認證的docker私有倉庫搭建完畢,也可參考官網通過docker run的方式,
鏈接:https://hub.docker.com/r/hyper/docker-registry-web/

另外需註意,首次向倉庫push鏡像時會提示權限問題,需要登錄web給admin用戶分配一下權限。

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/yuhaitao8922/article/details/72996993

Docker搭建帶有訪問認證的私有倉庫