搭建Docker私有倉庫&用戶密碼認證&web可視化界面


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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM