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

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

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

二、下載docker-compose(一種簡化複雜容器應用的利器,具體使用可參見官網) 
官網下載連接:https://docs.docker.com/compose/install/ 
懶人能夠直接使用下面的命令便可下載git

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的權限:github

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

三、建立幾個目錄,用於存放配置文件和做爲私有倉庫的鏡像存儲目錄web

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

四、生成證書docker

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

五、建立yml配置文件 
###建立倉庫的配置文件 
vim /data/registry_dir/conf/registry/config.ymlvim

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.ymlapi

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

六、啓動容器markdown

docker-compose up -d
  • 1
  • 2

搭建完成,查看鏡像運行狀況:docker ps | grep registry 
正常運行的話,接下來就能夠愉快的訪問你的鏡像倉庫了,打開瀏覽器,輸入localhost:8080(從其餘機器訪問該倉庫的話,輸入ip:port的方式就能夠)默認用戶名密碼是admin/admin 
這裏寫圖片描述curl

也能夠從後臺驗證配置是否準確:

docker login localhost:5000
  • 1
  • 2

輸入正確的用戶密碼會提示: 
這裏寫圖片描述

若是密碼錯,則會提示: 
這裏寫圖片描述

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

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

相關文章
相關標籤/搜索