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
- 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/72996993Docker搭建帶有訪問認證的私有倉庫