# :-: Docker私有鏡像倉庫
## 1.?關于Registry
倉庫:集中存放鏡像的地方,可分為公共倉庫和私有倉庫(公共倉庫"[http://hub.docker.com](http://hub.docker.com)"或國內的"[http://www.daocloud.io](http://www.daocloud.io)")
注冊服務器(Registry):是存放倉庫的服務器,每個服務器上都可以放置多個倉庫,而每個倉庫上可以放置多個鏡像,每個鏡像上可以運行多個容器,每個容器上可以跑一個應用或應用組。
Docker hub為我們提供了很多官方鏡像和個人上傳的鏡像,我們可以下載機構或個人提供的鏡像,也可以上傳我們自己的本地鏡像,然后我們需要的時候也可以隨時下載。但缺點是:
(1)由于網絡的原因,從dockerhub上下載和上傳鏡像速度可能會比較慢。
(2)在生產上使用的docker鏡像可能包含我們的代碼、配置信息等,不想被外部人員獲取,只允許內網的開發人員下載。如果上傳到dockerhub上所有人都可以看到。
使用Docker私有倉庫則解決了以上2個問題,在內部網絡搭建docker私有倉庫可以使內網人員下載和上傳都非常快速,不受外網帶寬等因素的影響,同時不在內網的人員無法下載我們的鏡像。
## 2.?Registry的部署
1\. 運行下面命令獲取registry鏡像
docker pull registry
下載到的版本默認為 [docker.io/registry](http://docker.io/registry)??????????? latest?\*\*

2\. 將registry鏡像運行并生成一個容器
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
Registry服務默認會將上傳的鏡像保存在容器的/var/lib/registry,將主機的/opt/registry目錄掛載到該目錄,即可實現將鏡像保存到主機的/opt/registry目錄了。
3\. 運行docker?ps看一下容器運行情況
4.registry容器啟動后,打開瀏覽器輸入http://*ip\_add*:5000/v2/,看到下面情況說明registry運行正常

## 3\. 測試上傳鏡像到Registry
通過將鏡像push到registry來驗證,首先將主機的registry鏡像命名為符合倉庫要求**registry\_url:port/ImageName:tag**的格式,如圖

通過docker tag命令來實現命名
```
docker tag sentinel-dashboard:latest 106.12.33.244:5000/sentinel-dashboard:latest
```
通過命令 docker images 查看本地鏡像,重新創建了一個鏡像

上傳鏡像到Registry倉庫:
*****
```
docker push? 106.12.33.244:5000/sentinel-dashboard:latest
```
**注意:**
可能會出現無法push鏡像到私有倉庫的問題。提示:

這是因為我們啟動的registry服務不是安全可信賴的。這時需要**修改客戶端docker的配置**文件/etc/docker/daemon.json,添加下面藍色的內容(registry服務地址)**:**
```
{
"registry-mirrors": ["https://2o24a5kv.mirror.aliyuncs.com"],"insecure-registries": ["106.12.33.244:5000"]
}
```
修改好之后需要重啟Docker服務才能生效,執行命令:**systemctl restart docker** ,再push即可。
push成功之后,查看本地/opt/registry目錄下已經有了剛推送上來的registry鏡像,也可以在瀏覽器中輸入
```
http://106.12.33.244:5000/v2/_catalog
```

- 項目介紹
- 項目聲明
- 項目簡介
- 架構設計
- 項目亮點功能介紹
- 技術棧介紹
- 核心功能
- 運行環境
- 項目更新日志
- 文檔更新日志
- F&Q
- 部署教程
- 環境準備
- JDK安裝
- JDK1.8,17共存
- maven
- 分布式緩存Redis
- 單機版
- 集群
- 注冊&配置中心alibaba/nacos
- 介紹
- Nacos安裝
- Nacos配置中心
- Nacos注冊發現
- Nacos生產部署方案
- 服務監控-BootAdmin
- 基本介紹
- 如何使用
- 整合Admin-Ui
- 客戶端配置
- 鏈路追蹤
- 基本介紹
- SkyWalking-1
- Skywalking-1
- 消息隊列
- Kafka
- docker安裝kafka
- Linux集群
- Maven私服
- nexus安裝部署
- nexus使用介紹
- 全文搜索elasticsearch
- windows集群搭建
- docker安裝es
- ElasticHD
- linux集群部署
- 統一日志解決方案
- 日志解決方案設計
- 介紹與相關資料
- ELK安裝部署
- elasticsearch 7.5
- logstash-7.5
- kibana-7.5
- filebeat
- 服務監控-Prometheus
- Prometheus安裝配置
- Prometheus介紹
- grafana
- 持續集成部署CICD
- 自動化部署Jenkins
- 安裝部署win
- 打包發布遠程執行
- 安裝部署linux
- jenkins+gitlab+docker容器化工程自動化部署
- Git
- CICD說明
- 阿里云效
- CentOS_MYSQL安裝
- docker
- 安裝
- Docker安裝Nginx
- Docker部署啟動springboot
- dockerCompose
- harbor
- Docker私有鏡像倉庫
- Portainer
- Docker遠程連接設置
- 打包工程
- 必要啟動模塊
- 核心模塊
- 登錄認證
- 緩存功能
- 日志模塊
- 分布式鎖
- 消息隊列
- 異常處理
- 系統接口
- 參數驗證
- es檢索
- 數據導出
- 系統設計
- 系統總體架構
- 擴展模塊(可選)
- 限流熔斷alibaba/sentinel
- 使用Sentinel實現gateway網關及服務接口限流
- Sentinel使用Nacos存儲規則及同步
- 服務調用Feign
- Feign基本介紹
- 如何使用
- 負載均衡
- 請求超時
- 請求攔截器
- 分布式任務調度
- XXL-JOB
- 分布式事務
- TX-LCN
- Seata
- Seata原理解析
- 數據庫分庫分表
- swagger文檔
- 分布式ID生成器解決方案
- 服務網關CloudGateway
- 基本介紹
- 使用網關
- 路由配置
- 全局過濾器
- 服務認證授權架構設計
- 認證服務流程
- 授權服務流程
- 系統冪等性設計與實踐
- 分布式日志鏈路跟蹤
- 實時搜索系統設計
- 應用性能
- 壓力測試工具
- Apache JMeter介紹和安裝
- ApacheJMeter使用
- JVM
- JVM性能調優
- 常見JVM內存錯誤及解決方案
- JVM 分析工具詳解
- Spring Cloud性能調優
- Linux運維
- Linux 常用命令
- Linux開啟端口