使用 Nexus Repository Manager 搭建私有docker倉庫
docker pull sonatype/nexus3
2.使用鏡像啟動一個容器:
docker run -d --name nexus --restart=always -p 5000:5000 -p 8081:8081 sonatype/nexus3
註:5000端口是用於鏡像倉庫的服務端口 8081 端口是nexus的服務端口
3.啟動之後我們就可以通過http://服務器IP:8081訪問。
默認賬號密碼為admin/admin123
通過瀏覽器訪問Nexus:
http://服務器IP:8081
點擊右上角進行登錄,通過初始用戶名和密碼進行登錄(admin/admin123):
點擊設置界面,選擇Repositories,點擊Create repository,如下圖所示:
選擇倉庫類型,這裏Docker有三種類型,分別是group、hosted、proxy。這裏只演示hosted類型,所以選擇docker(hosted),如下圖:
創建並配置倉庫:
註:Docker鏡像倉庫類型含義解釋如下:
hosted : 本地存儲,即同docker官方倉庫一樣提供本地私服功能
proxy : 提供代理其他倉庫的類型,如docker中央倉庫
group : 組類型,實質作用是組合多個倉庫為一個地址
因為我們測試的時候不是使用加密的HTTPS進行訪問,所以這裏需要增加一個docker的啟動參數,給他指定私庫的地址,如下:
編輯/etc/docker/daemon.json 增加如下內容,當然也可通過啟動參數增加
{
"insecure-registries":["http://192.168.12.168:5000"]
}
重啟docker進程: systemctl restart docker
查看docker信息: docker info ,有如下輸出即正常
登錄私庫
要使用私庫進行上傳下載需要進行登錄連接到Nexus
docker login http://192.168.12.186:5000/repository/docker-assoft/
Docker上傳鏡像到私庫
使用docker tag 對鏡像進行管理(必須進行此項操作)
docker tag使用格式:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag portainer-temlates-new:latest 172.17.9.81:5000/portainer-templates:v1
docker push 172.17.9.81:5000/portainer-templates:v1
圖例:使用tag進行打標,正常上傳的結果
圖例:不進行tag打標,會出現denied: requested access to the resource is denied報錯
上傳完成後,在nexus中對應的docker庫中,即可看到此鏡像
下載私庫中的鏡像
1、刪除本地上例實驗中的鏡像(docker rmi 172.17.9.81:5000/portainer-templates:v1)
2、docker pull 172.17.9.81:5000/portainer-templates:v1
使用 Nexus Repository Manager 搭建私有docker倉庫