Nexus3 安装 及 配置 docker 私有、代理 仓库
一、Nexus3 私庫管理器
Nexus全稱Sonatype Nexus,是一種特殊的遠程倉庫,它是架在局域網內的倉庫服務。可以用于局域網中的 docker、maven、npm、yum 等私服代理,并且支持私有倉庫。
下面通過實驗來認識下 Nexus3 私庫管理器,以及配置 docker 私有、代理 倉庫。
二、Nexus3 安裝
本文通過 docker-compose 的方式快速搭建 Nexus3 環境,所以在實驗前請確保已經安裝好了 docker 和 docker-compose 環境。
- 創建數據掛載目錄并修改權限:
- 創建 docker-compose.yml 文件,寫入以下內容:
其中 8081 為 Nexus3 web頁面的端口,6000 和 6001 分別為 docker 代理和私服的端口,這個是后面配置中指定的,這里可以預先開放端口。由于Nexus3 依賴于JDK,因此環境變量中指定了JVM的一些參數,可以根據自己服務器的實際情況修改。
- 啟動服務
服務啟動較慢,需要等待一會,可以查看 log ,看是否成功啟動:
docker-compose logs出現以下日志,則證明啟動成功!
- 瀏覽器訪問 http://ip:8081:
- 點擊右上角 Sign in 開始登錄,用戶為 admin ,密碼在 /nexus-data/admin.password 中:
- 登錄成功后 點擊 next ,需要修改密碼,修改個自己的密碼:
- 下面彈出的是否啟用匿名訪問,我這里選是:
- 最后點擊 Finish 環境就搭建完成了,下面開始配置 docker 私有、代理倉庫吧。
三、配置 docker 私有、代理 倉庫
在 Nexus3 中對于docker 的支持又 hosted(自托管私有倉庫)、proxy(代理)、group(聚合)三種模式,其中 group 模式可以將多個模式集中成一個地址訪問,比如使用 hosted 模式搭建私有的 docker 倉庫,一些項目中的鏡像都上傳到這個地方。使用 proxy 模式代理遠程的倉庫比如 dockerHub ,可以在局域網中下載外網的鏡像。此時就可以通過 group 默認將hosted模式和proxy模式聚合成一個地址訪問,這樣在下載鏡像的時候如果是私服的鏡像直接在私服拉取了,如果沒有再通過代理拉取遠程的鏡像。
下面開始搭建上面的模式:
1. 首先我們先創建三個 Blob Stores ,分別存放三種模式產生的文件:
首先點擊上方的設置圖標,選擇 Blob Stores,然后點擊 右邊的 Create Blob Stores
- 創建 docker-hosted
- 創建 docker-proxy
- 創建 docker-group
- 創建完成后在列表中可以看到
2. 下面開始創建 hosted 模式私服倉庫
點擊當前頁的 Repositories ,然后點擊 左上角的 Create repositories:
選中 docker(hosted) 模式:
指定基本信息及配置:
其中開放協議使用的 HTTP,端口就是上面安裝時候釋放的 6001 ,下面 Blob store 選擇上面創建的:
最后點擊最下面的 Create repositories完成創建。
2. 接著創建 proxy 模式代理倉庫
選中 docker(proxy),代理模式可以不用開放協議端口,因為后面拉取鏡像統一使用 group 模式進行拉取:
同樣填寫信息:
下面需要填寫一個代理地址,可以指定為:https://registry-1.docker.io,下面 Docker Index 可以使用 Docker Hub 的:
下面 Blob store 同樣使用上面創建的:
最后點擊最下面的 Create repositories完成創建。
3. 接著創建 group 模式代理倉庫
選中 docker(group):
同樣填寫信息,注意端口需要使用 6000 了:
下面 Blob store 同樣使用上面創建的,注意下面的 group 需要選中上面創建好的兩種模式:
最后點擊最下面的 Create repositories完成創建。
到這就已經創建好三種模式了,可以在列表中看到創建的倉庫:
下面就可以在 docker 客戶端指定倉庫為上面創建的倉庫了,下面繼續測試一下。
四、docker 客戶端測試
修改 /etc/docker/daemon.json 文件,在 insecure-registries 中,增加私有配置:
{"registry-mirrors": ["https://你的阿里云id.mirror.aliyuncs.com"],"insecure-registries": ["192.168.40.171:6000","192.168.40.171:6001"] }重啟 docker:
systemctl restart docker登錄 私服倉庫:
docker login -u admin -p nexus 192.168.40.171:6000docker login -u admin -p nexus 192.168.40.171:6001此時如果報 failed with status: 401 Unauthorized 異常:
這個是沒有使用 SSL證書和域名,需要修改下 Realms 中的配置:
下面再進行登錄就可以了:
拉取鏡像
docker pull 192.168.40.171:6000/nginx
可以看到已經拉取到鏡像,可以在 nexus3 的 web 頁面看到該鏡像:
上傳鏡像
首先標記鏡像并更換個名稱方便看到效果
docker tag 192.168.40.171:6000/nginx:latest 192.168.40.171:6001/test/nginxbxc:latest推送鏡像
docker push 192.168.40.171:6001/test/nginxbxc:latest查看 web 頁面:
總結
以上是生活随笔為你收集整理的Nexus3 安装 及 配置 docker 私有、代理 仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从0搭建一个邮件服务器(用于邮件推送以及
- 下一篇: 微信背后的设计观