docker-2 docker搭建帶有訪問認證的私有倉庫(轉)
本文章為轉載
以下步驟均為本人親自踩坑,歷經數次失敗,最終搭建成功
一、環境資訊:
作業系統: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
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
下載完成後更改docker-compose的許可權:
- chmod 755 /usr/local/bin/docker-compose
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 #倉庫的訪問資訊
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
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
###建立倉庫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
###建立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
6、啟動容器
docker-compose up -d
1
搭建完成,檢視映象執行情況:docker ps | grep registry
正常執行的話,接下來就可以愉快的訪問你的映象倉庫了,開啟瀏覽器,輸入localhost:8080(從其他機器訪問該倉庫的話,輸入ip:port的方式就可以)預設使用者名稱密碼是admin/admin
也可以從後臺驗證配置是否準確:
docker login localhost:5000
1
輸入正確的使用者密碼會提示:
如果密碼錯,則會提示:
至此,帶有訪問認證的docker私有倉庫搭建完畢,也可參考官網通過docker run的方式,
連結:https://hub.docker.com/r/hyper/docker-registry-web/
另外需注意,首次向倉庫push映象時會提示許可權問題,需要登入web給admin使用者分配一下許可權。