1.拉取鏡像
docker pull hyper/docker-registry-web docker pull registry
2.安裝
yum install docker-compose
3.搭建過程
(1)創建存放配置文件和私有倉庫鏡像的存儲目錄
mkdir -p /usr/local/docker-registry/conf/registry #存放倉庫的配置信息 mkdir -p /usr/local/docker-registry/conf/registry-web #存放倉庫UI界面的配置信息 mkdir -p /usr/local/docker-registry/registry #存放倉庫的鏡像 mkdir -p /usr/local/docker-registry/db #倉庫的訪問信息
(2)生成證書
openssl req -new -newkey rsa:4096 -days 365 \
-subj "/CN=192.168.199.189" \
-nodes -x509 \
-keyout /usr/local/docker-registry/conf/registry-web/auth.key \
-out /usr/local/docker-registry/conf/registry/auth.cert
(3)創建倉庫的配置文件
vi /usr/local/docker-registry/conf/registry/config.yml
內容如下:
version: 0.1
storage:
filesystem:
rootdirectory: /var/lib/registry
http:
addr: 0.0.0.0:5000
auth:
token:
realm: http://192.168.199.189:50000/api/auth
service: 192.168.199.189:5000
issuer: 'admin'
rootcertbundle: /etc/docker/registry/auth.cert
(4)創建倉庫UI的配置文件
vi /usr/local/docker-registry/conf/registry-web/config.yml
內容如下:
registry:
url: http://192.168.199.189:5000/v2
name: 192.168.199.189:5000
readonly: false
auth:
enabled: true
issuer: 'admin'
key: /conf/auth.key
(5)創建docker-compose啟動配置文件
version: '2'
services:
registry-web:
image: hyper/docker-registry-web:latest
ports:
- 50000:8080
volumes:
- /usr/local/docker-registry/conf/registry-web:/conf:ro
- /usr/local/docker-registry/db:/data
networks:
- registry-net
depends_on:
- registry
restart: always
registry:
image: registry:2.4.1
ports:
- 5000:5000
volumes:
- /usr/local/docker-registry/conf/registry:/etc/docker/registry:ro
- /usr/local/docker-registry/registry:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
networks:
- registry-net
restart: always
networks:
registry-net:
#driver: default #如果報錯就注掉
yml文件主要格式,每一級都要縮進,最好用一個tab鍵,切記,如果啟動失敗,一定好好檢查這幾個配置文件,特別是空格(tab鍵)。
(6)通過docker-compose拉取鏡像啟動容器
docker-compose up -d
(7) vim /lib/systemd/system/docker.service
添加 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.199.189:5000
然后執行下面命令刷新配置:
systemctl daemon-reload
重啟docker:
systemctl restart docker
(8) 配置docker pull默認從本地倉庫拉去鏡像
vim /usr/lib/systemd/system/docker.service
啟動參數增加
--add-registry=192.168.199.189:5000 --insecure-registry=192.168.199.189:5000
重啟docker:
# systemctl daemon-reload # systemctl restart docker
驗證:
docker info
其他主機下載鏡像:
在另外一台需要獲取鏡像的主機上配置registry為無CA模式:
vim /etc/docker/daemon.json
{
"insecure-registries" : ["192.168.199.189:5000"]
}
搭建完成!
可以打開瀏覽器輸入:192.168.199.189:50000
輸入賬號密碼登錄,默認是admin/admin,可以登錄后修改,默認賬號只有ui的管理功能,如果需要push功能還需要自己配置權限。
也可以使用docker命令登錄:
docker login 192.168.199.189:5000
4. 提交鏡像
(1)執行命令docker pull tomcat,從hub.docker.com下載最新版本的tomcat鏡像
docker pull tomcat
(2) 執行命令docker images查看鏡像列表
docker images
(3) 鏡像添加一個帶有私有倉庫IP的TAG
docker tag dd6ff929584a 192.168.199.189:5000/tomcat
(4) 登錄本地倉庫
docker login 192.168.199.189:5000
(5) 提交鏡像到本地倉庫
docker push 192.168.199.189:5000/tomcat
