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