注冊用戶即可下載全站資源 關注Java幫幫微信公眾號
 

Docker學習之搭建私有鏡像倉庫

3
發表時間:2018-11-08 13:53來源:Java幫幫-微信公眾號



過節之前來一發,又是許久沒整理筆記了,今天跟大家聊聊Docker如何搭建私有倉庫的幾種方式。首先我們來回顧一下之前講到的Doker 平臺的基本構成。

Doker 平臺的基本構成

日本韩国三级aⅴ在线观看Docker 平臺基本上由三部分組成:

  • 客戶端:用戶使用 Docker 提供的工具(CLI 以及 API 等)來構建,上傳鏡像并發布命令來創建和啟動容器

  • Docker 主機:從 Docker registry 上下載鏡像并啟動容器

  • 日本韩国三级aⅴ在线观看Docker registry:Docker 鏡像倉庫,用于保存鏡像,并提供鏡像上傳和下載

  • 后面的文章會具體分析。

搭建方式

與Mavan的管理一樣,Docker不僅提供了一個中央倉庫,同時也允許我們使用registry搭建本地私有鏡像倉庫。

使用私有倉庫有許多優點:

  • 日本韩国三级aⅴ在线观看節省網絡帶寬,針對于每個鏡像不用每個人都去中央倉庫上面去下載,只需要從私有倉庫中下載即可;

  • 日本韩国三级aⅴ在线观看提供鏡像資源利用,針對于公司內部使用的鏡像,推送到本地的私有倉庫中,以供公司內部相關人員使用。

方式一(registry鏡像)

環境:為了測試安裝方便,這里準備了一臺裝有Docker的云服務器。

搭建私有倉庫:

# 下載registry鏡像

$ sudo docker pull registry

# 通過該鏡像啟動一個容器

$ sudo docker run -d -p 8082:8082 registry

# 映射鏡像路徑至宿機器、放置容器刪除、鏡像丟失:

$ sudo docker run -d -p 8082:8082 -v /opt/data/registry:/tmp/registry registry

日本韩国三级aⅴ在线观看修改配置并重啟Docker

vi /etc/docker/daemon.json
{   "registry-mirrors": ["172.17.120.102:8082"],   "insecure-registries":["172.17.120.102:8082"]  }
# 重啟 docker 服務systemctl restart docker

日本韩国三级aⅴ在线观看測試倉庫Push/Pull:

# 首先pull一個比較小的鏡像(busybox)來測試

docker pull busybox

# 修改一下該鏡像的tag

$ docker tag busybox 172.17.120.102:8080/busybox

# 上傳鏡像到私有倉庫。

$ docker push  172.17.120.102:8082/busybox

到此就搭建好了Docker私有倉庫,但是如上搭建的倉庫是不需要加密認證的,當然你可以通過證書或者Nginx實現認證訪問。下面介紹一下基于Nexus 3搭建的Docker私有倉庫。

方式二(Nexus 3)


Nexus簡介

Nexus是一個多功能的倉庫管理系統,是企業常用的私有倉庫服務器軟件。目前常被用來作為Maven私服、Docker私服。

優點

  • 安裝簡單,并且有官方Docker鏡像

  • 日本韩国三级aⅴ在线观看用戶界面,并提供REST API

  • 日本韩国三级aⅴ在线观看支持瀏覽、檢索以及檢查機制

  • 日本韩国三级aⅴ在线观看支持npm與bower以及Raw repositories、NuGet repositories

總之Nexus物美價廉,又提供功能全面的oss版,加之支持種類眾多的依賴管理,又可以統一管理docker鏡像。

安裝

參考之前寫的一篇博客: 。當然,這里我們有更簡潔的安裝方式,由于nexus3+依賴于JDK1.8,可能有不少企業系統上安裝的還是1.7甚至是1.6版本,這里我們選擇使用Docker鏡像安裝。

下載安裝:

# 下載nexus3鏡像(pull前請更換鏡像加速器,否則可能無法下載)

$ sudo docker pull sonatype/nexus3

# 通過該鏡像啟動一個容器

$ sudo docker run -d -p 8081:8081 -p 8082:8082 --name nexus sonatype/nexus3

# 可能需要一些時間(2-3分鐘)才能在新容器中啟動該服務。一旦Nexus準備就緒,您可以確定日志以確定結果:

$ sudo docker logs -f nexus

# 測試 如果出現pong說明啟動成功

$ curl -u admin:admin123 http://localhost:8081/service/metrics/ping

注意事項:

  • 可能會出現無法啟動的問題,由于云服務器只有1G內存,剩余也有幾十MB的樣式,顯然是無法跑起來的。


  • Nexus的安裝是/opt/sonatype/nexus。

  • 日本韩国三级aⅴ在线观看持久目錄,/nexus-data用于配置,日志和存儲。該目錄需要由作為UID 200運行的Nexus進程寫入。

  • 環境變量用于將JVM參數傳遞給啟動腳本

$ docker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g  -Djava.util.prefs.userRoot=/some-other-dir" sonatype/nexus3
  • 控制Nexus訪問目錄,NEXUS_CONTEXT,默認為/

docker run -d -p 8081:8081 --name nexus -e NEXUS_CONTEXT=nexus sonatype/nexus3
  • 持久數據

$ mkdir /opt/data/nexus-data && chown -R 200 /opt/data/nexus-data$ docker run -d -p 8081:8081 --name nexus -v /opt/data/nexus-data:/nexus-data sonatype/nexus3

創建本地倉庫:

Nexus配置:

項目地址端口
Nexus UI8081
private repo8082
URL:8081/


支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區
Java幫幫公眾號生態

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

人工智能,爬蟲,學習教程

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

互聯網,職場,程序員那些事兒

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
合作品牌 非盈利生態-優質內容分享傳播者
關于我們
友鏈申請
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
全站內容非商業用途,內容來源于網友,并遵循 許可,如有異議請聯系客服。
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部